본문 바로가기
IT

MongoDB에 대하여

by 동양동꿀주먹 2022. 12. 31.

몽고디비(MongoDB)에 대하여

몽고디비(Mongo Database)는 HBase 기반의 구조를 갖는 NoSQL(Not only SQL)의 대표적인 비 관계형 데이터베이스입니다. 데이터베이스는 전통적인 관계형 데이터베이스로 구성되어 있었습니다. 이러한 구성은 빠르게 변화하는 세상의 모든 요구를 충족시키기에는 다소 비효율적인 부분도 있었습니다. 그래서 관계형 데이터베이스보다 더 유연하고 단순한 수평적 확장과 이용성에 대한 세세한 통제에 집중하고 단순 검색 및 데이터의 추가 저장을 위해 매우 최적화된 키값 저장 공간을 사용하여 레이턴시(Layency)와 처리량(Throughput)과 관련된 성능 이점을 가져가도록 설계된 NoSQL 데이터베이스가 등장하였습니다. 현재 NoSQL 데이터베이스는 빅데이터와 실시간 웹 애플리케이션 등의 상업적 이용에 많이 쓰이고 있습니다. 

 

몽고디비(MongoDB)의 특징

MongoDB는 거대한 Map으로서 키값 저장 공간 형식을 지원하기 때문에 데이터를 읽어 들이는 작업보다 쓰는 작업이 더 빠르며 관계형 데이터베이스에 비하여 쓰기와 읽기 성능이 더 빠릅니다. 그리고 관계형 데이터베이스와 다르게 PK, FK 등의 관계를 정의하지 않고 스키마에 대한 정의가 없습니다. 이러한 MongoDB의 특징은 대용량 데이터를 처리하기 위해 설계되었기 때문입니다. MongoDB는 저장하고자 하는 데이터의 모델의 속성값들을 표현하기 위하여 관계를 정의하며 여러 개의 모델링을 설계하기보다는 하나의 데이터 모델에 필요한 속성값들을 모두 정의하여 최적화된 키값 저장 기법으로 데이터들을 저장합니다. 그러므로 데이터 모델링이 유연하며 뛰어난 확장성을 가지며 복잡한 데이터 구조도 쉽게 표현할 수 있습니다. 이것을 MongoDB에서 사용하는 용어로 바꿔서 표현하면 도큐먼트(Document)라는 저장소에 제이슨(Json, javascript 형식의 오브젝트 표기법)형태로 저장한다고 볼 수 있습니다. 이러한 데이터 타입은 사람이 읽고 쓰기 쉬우며 기계가 파싱하고 생성하기 쉽다는 장점이 있습니다. 또한 MongoDB는 데이터베이스 검색을 빠르게 하기 위하여 데이터의 순서를 미리 정리해두는 B-Tree 구조로 인덱싱(indexing) 전략을 사용합니다. 쿼리(Query)가 더 효율적으로 수행될 수 있도록 도큐먼트에 기준을 정하여 정렬된 목록을 생성하는 것입니다. 만약 인덱스가 없다면 MongoDB는 Full Collection Scan이라는 모든 데이터를 다 조회하는 매우 비효율적인 방법을 사용하게 됩니다. MongoDB는 대용량 데이터를 효율적으로 저장하기 위해서 여러 대의 서버에 분산 처리하는 샤딩(Sharding)이라는 방법도 사용합니다. 그리고 데이터베이스 장애를 대비하여 데이터를 보존하는 방법으로 레플리카(Replica)라는 복제 시스템을 사용합니다.

'IT' 카테고리의 다른 글

SPA (Single Page Application)에 대하여  (0) 2023.01.01
레디스(Redis)에 대하여  (0) 2023.01.01
자바스크립트에 대하여  (0) 2022.12.30
Node.Js에 대하여  (0) 2022.12.28
운영체제에 대하여  (0) 2022.12.28

댓글