Node.js 공부 중, 몽고디비를 사용하게 되면서 알게 된 내용을 정리한 글입니다.
몽고디비가 무엇일까?
몽고디비를 들어보신 분들이라면 NoSQL 데이터베이스에 대해서도 들어보셨을겁니다. 왜냐하면 몽고디비는 NoSQL 데이터베이스이기 때문이죠.
NoSQL
NoSQL은 "Not Only SQL"의 약자로, 관계형 데이터베이스 관리 시스템(RDBMS)가 아닌 다양한 형태의 데이터 저장 및 검색을 지원하는 데이터베이스 시스템을 말합니다.
NoSQL은 다음과 같은 장점이 있습니다.
- 유연성: 스키마가 정적이지 않거나 필요에 따라 유연하게 조정될 수 있는 데이터 모델을 제공합니다. 필드의 추가 및 삭제가 자유로운 schema-less 구조를 가집니다.
- 확장성: 데이터의 분산, 저장, 처리를 지원하여 대량의 데이터 및 트래픽을 효과적으로 처리할 수 있습니다.
- 다양한 데이터 유형 지원: 다양한 데이터 형식 및 구조를 지원하기 때문에 비정형 데이터나 복잡한 데이터 모델을 효과적으로 다룰 수 있습니다.
- 가용성과 탄력성: 많은 NoSQL시스템은 분산 아키텍처를 통해 고가용성과 장애 복구 기능을 제공합니다.
NoSQL 데이터베이스에는 다양한 종류가 있습니다.
- 문서 지향 데이터베이스(Document-Oriented Database): JSON이나 BSON과 같은 형식으로 데이터를 저장하는데 중점을 둔 데이터베이스입니다. MongoDB가 대표적인 예입니다.
- 키-값 스토어(Key-Value Store): 간단한 키와 그에 대응하는 값을 저장하는 방식입니다. 예로는 Redis, Amazon DynamoDB 등이 있습니다.
- 열 지향 데이터베이스(Column-Family Store): 데이터를 열 기반으로 저장하며, 대량의 데이터를 빠르게 읽고 쓸 수 있는 특성을 가지고 있습니다. Apache Cassandra가 이 유형에 속합니다.
- 그래프 데이터베이스(Graph Database): 데이터의 관계를 그래프로 표현하며, 관계형 데이터의 복잡성을 감소시킵니다. Neo4j가 대표적인 그래프 데이터베이스입니다.
몽고디비
몽고디비는 앞서 소개한 NoSQL의 종류 중 도큐먼트 타입에 속합니다.
몽고디비는 C++로 작성되었고, 오픈소스로 제공되고 있습니다.
몽고디비에서의 도큐먼트는 BSON이라는 데이터 포맷입니다. BSON은 Binary JSON으로 JSON을 바이너리 형식으로 저장합니다.
몽고디비는 기존 JSON에서 지원하지 않는 자료형인 Date와 BinData(바이너리데이터) 타입을 지원합니다.
몽고디비의 장점
몽고디비는 다음과 같은 장점이 있습니다.
- 데이터 저장의 유연성: 스티마를 지정하지 않아도 되기 때문에 데이터 저장의 유연성을 가집니다.
- 검색 속도: 단일 문서 검색시 여러 테이블을 조인하는 것보다 빠른 경우가 많습니다.
- 쉬운 스케일 아웃: 클러스터를 지원하기 때문에 스케일아웃이 쉬운 편입니다.
- 인덱싱: 다른 NoSQL 대비 인덱스 지원이 잘 되어 있습니다.
몽고디비의 단점
몽고디비는 다음과 같은 단점이 있습니다.
- 메모리를 많이 사용합니다
- 디스크 저장 공간을 RDB에 비해 많이 씁니다
- 복잡한 조인은 사용하기 힘듭니다
- 트랜잭션 지원이 RDB에 비해 약합니다.
'DB > MongoDB' 카테고리의 다른 글
[MongoDB] 몽고디비 데이터 관계 모델링 Reference VS Embedding (0) | 2024.02.05 |
---|---|
[MongoDB] 몽고디비 CRUD 관련 쿼리 알아보기 (1) | 2023.12.22 |
[MongoDB] MacOS에서 몽고디비와 컴퍼스 설치하기 (0) | 2023.12.21 |