윤개발

MongoDB 소개 및 특정 본문

백엔드/mongoDB

MongoDB 소개 및 특정

DEV_SJ 2021. 10. 6. 22:09

몽고DB는 강력하고 유연하며 확정성 높은 데이터베이스다. 몽고DB의 특징에 대해 알아보자.

1. 손쉬운 사용

몽고DB는 관계형 데이터베이스가 아니라 도큐먼트 지향 데이터베이스다.

관계형 모델을 사용하지 않는 주된 이유는 분산 확장(Scale-out)을 쉽게하기 위함이지만 다른 이점도 있다.

 

도큐먼트 지향 데이터베이스에서는 행 개념 대신에 보다 유연한 모델인 document를 사용한다.

내장 도큐먼트와 배열을 허용함으로써 document 지향 모델은 복잡한 계층관계를 하나의 레코드로 표현할 수 있다. 이 방식은 최신 객체 지향 언어를 사용하는 개발자의 관점에 매우 적합하다.

 

또한 몽고DB에서는 도큐먼트의 키와 값을 미리 정의하지 않는다. 따라서 고정된 스키마가 없다.

고정된 스키마가 없으므로 필요할 때마다 쉽게 필드를 추가하거나 제거할 수 있다. 덕분에 개발 과정을 빠르게 반복할 수 있어서 개발 속도가 향상된다.

 

2. 확장 가능한 설계

애플리케이션 데이터의 크기는 시간이 지날수록 증가하고 있다.

데이터가 증가함에 따라 개발자는 '데이터베이스를 어떻게 확장할 것인가'와 같은 의사결정을 해야하는 상황에 직면한다. 확장은 결국 더 큰 장비로 업그레이드하는 Scale-up을 할지 혹은 여러 장비에 데이터를 분산 저장하는 Scale-out을 할지 결정해야한다.  일반적으로 성능 확장이 더 편한 길이지만 단점이 있다. 대형 장비는 가격이 비싼 편이고 나중에는 결국 물리적 한계에 부딪히고 만다. 반면에 분산 확장은 수천 대의 장비를 운영해야 하기 때문에 하나의 장비만 관리할 때보다 관리가 더 어려워진다.

 

몽고 DB는 분산 확장을 염두에 두고 설계됐다. 도큐먼트 지향 데이터 모델은 데이터를 여러 서버에 더 쉽게 분산하게 해준다. 아래 그림과 같이 도큐먼트를 자동으로 재분배하고 사용자 요청을 올바른 장비에 라우팅 함으로써 데이터 양과 부하를 조절할 수 있다.

이를 통해 개발자는 애플리케이션을 확장하는 것이 아닌 프로그래밍에 집중할 수 있다. 

 

3. 다양한 기능

몽고DB는 범용 데이터베이스로 만들어졌기 떄문에 데이터의 CRUD 외에도 DBMS의 대부분의 기능과 더불어 다음 기능을 제공한다.

 

- 인덱싱

몽고DB는 일반적인 보조 인덱스(Secondary-index)를 지원하며 Unique, compound, Full-text 인덱싱 기능도 제공한다. 또한 중첩된 도큐먼트 및 배열과 같은 계층 구조의 보조 인덱스도 지원하며 개발자가 자신의 애플리케이션에 가장 적합한 방식으로 활용할 수 있다.

 

- 집계

몽고DB는 데이터 처리 파이프라인 개념을 기반으로 한 집계 프로임워크를 제공한다. 서버 측에서 비교적 간단한 단계로 복잡한 분석 엔진을 구축할 수 있다.

 

- 특수 컬렉션

몽고DB는 로그와 같은 최신 데이터를 유지하고자 세션이나 고정 크기 컬렉션과 같이 특정 시간에 만료해야하는 데이터에 대한 유효 시간 컬렉션을 지원한다.

 

- 파일 스토리지

몽고DB는 큰 파일과 파일 메타데이터를 편리하게 저장하는 프로토콜을 지원한다.

 

관계형 데이터베이스에 공통적으로 사용되는 일부 기능, 복잡한 조인은 몽고DB에서 존재하지 않는다. 조인은 분산 시스템에서 효율적으로 제공하기 어렵기 때문에 더 큰 확장성을 허용하기 위한 아키텍처적인 결정이었다.

 

 

결국 몽고DB는 확장성이 높으며 유연하고 빠른, 완전한 기능을 갖춘 데이터 스토리지를 만드는 일이다.

앞으로 몽고DB의 개발 과정에서 내린 결정과 동기, 이유에 대해서 살펴볼 것이다.

이를 통해 몽고DB의 철학을 알아보도록 하자.

 

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=268367408 

 

[전자책] MongoDB 완벽 가이드

몽고DB 입문자를 위한 기초부터 실제 배포에 적용할 수 있는 실용적이고 깊이 있는 내용까지 담았다. 개정 3판에서는 성능이 강화된 몽고DB 최신 버전을 반영해 복제와 샤딩을 더 깊이 다루며 개

www.aladin.co.kr

 

Comments