DB/MongoDB

[Mongo] 몽고DB 소개

SS_G 2024. 9. 8. 11:17
반응형

몽고DB는 강력하고 유연하며 확장성이 높은 범용 데이터베이스입니다. 다양한 기능을 갖추고 있어 많은 개발자들이 선호하는 데이터베이스 중 하나예요.
오늘은 몽고DB의 주요 특징과 장점들에 대해 함께 알아볼게요!


1. 손쉬운 사용

몽고DB는 관계형 데이터베이스가 아닌 도큐먼트 지향 데이터베이스입니다.
즉, 행과 열로 구성된 테이블 대신, 더 유연한 도큐먼트 모델을 사용해요.
이 모델은 내장 도큐먼트배열을 허용해 복잡한 계층 구조도 하나의 레코드로 표현할 수 있어요.

또한 몽고DB는 고정된 스키마가 없어서, 필요할 때마다 필드를 추가하거나 제거할 수 있죠. 덕분에 개발 속도를 크게 높일 수 있어요!

개발자는 여러 모델을 실험해본 후 가장 적합한 모델을 선택할 수 있어요.


2. 확장 가능한 설계

현대 애플리케이션에서는 데이터의 양이 폭발적으로 증가하고 있어요.
몽고DB는 분산 확장을 염두에 두고 설계되어 데이터를 여러 서버에 쉽게 분산할 수 있어요.

기존에는 대형 장비를 이용해 확장하는 것이 일반적이었지만, 몽고DB는 분산 확장을 통해 여러 서버에 데이터를 나누어 저장해요.
예를 들어, 몽고DB는 샤딩을 사용해 데이터를 자동으로 분배하고, 요청을 올바른 서버에 전달해 부하를 분산시키죠.
덕분에 대규모 애플리케이션도 효율적으로 확장할 수 있어요!

  

 

여러 서버에 걸쳐 샤딩을 사용한 몽고 DB 확장

 

  • 애플리케이션 및 드라이버:
    • 애플리케이션은 MongoDB 데이터베이스에 데이터를 읽고 쓰는 역할을 하며, 이를 위해 드라이버를 사용합니다. MongoDB 드라이버는 애플리케이션과 MongoDB 서버 간의 통신을 처리합니다.
  • Mongos (라우터):
    • Mongos는 클라이언트 애플리케이션이 MongoDB 샤드(Shard) 서버들에 쉽게 접근할 수 있도록 요청을 라우팅하는 역할을 합니다. 클라이언트는 Mongos에 요청을 보내면, Mongos는 요청을 적절한 샤드로 전달합니다.
    • MongoDB 클러스터에서 데이터가 여러 샤드로 분산되어 있기 때문에 Mongos가 이 분산된 데이터를 효율적으로 관리하는 중개자 역할을 합니다.
  • 구성 서버(Config Server):
    • 구성 서버는 샤딩된 데이터의 메타데이터를 저장하는 서버입니다. 어떤 데이터가 어느 샤드에 저장되어 있는지에 대한 정보가 이 서버에 저장되며, Mongos는 이 정보를 사용해 적절한 샤드에 요청을 전달합니다.
    • 보통 3개의 구성 서버가 사용되어 고가용성을 유지합니다.
  • 샤드(Shard):
    • 각 샤드는 MongoDB의 데이터를 분산 저장하는 역할을 합니다. 샤드에는 실제 데이터가 저장되며, 여러 샤드에 데이터를 나누어 저장함으로써 데이터베이스의 처리 용량과 성능을 향상시킵니다.
    • 각 샤드는 MongoDB의 독립적인 데이터베이스 인스턴스로 동작하며, 데이터를 분산하여 저장함으로써 단일 서버의 용량 한계를 극복합니다.

 


3. 다양한 기능

몽고DB는 범용 데이터베이스로서 다양한 기능을 제공합니다. 몇 가지 주요 기능을 살펴볼까요?

  • 인덱싱: 고유 인덱스, 복합 인덱스, 공간 정보 인덱스 등 다양한 인덱싱을 지원해요.
  • 집계 프레임워크: 데이터 처리 파이프라인을 통해 데이터를 단계별로 처리하고 분석할 수 있어요.
  • 특수한 컬렉션: 로그나 세션 데이터를 위한 TTL 컬렉션을 제공해, 시간에 따라 만료되는 데이터를 쉽게 관리할 수 있어요.
  • 파일 스토리지: 대용량 파일과 파일 메타데이터를 효율적으로 저장하는 프로토콜도 지원해요.

4. 고성능

몽고DB는 성능 최적화를 위한 설계가 돋보이는 데이터베이스입니다.
와이어드타이거 스토리지 엔진을 통해 기회적 락을 사용해 동시성과 처리량을 극대화해요.

또한, RAM을 효율적으로 사용해 필요한 데이터를 빠르게 제공할 수 있답니다.
간소화된 설계를 통해 관계형 데이터베이스와는 다르게, 불필요한 작업을 최소화하여 성능을 극대화했어요.


몽고DB는 현대적인 애플리케이션을 위한 강력하고 유연한 데이터베이스로, 확장성과 성능을 모두 충족시키는 장점을 가지고 있어요. 특히 도큐먼트 지향 모델과 분산 확장 기능 덕분에 대용량 데이터를 다루는 데 매우 적합하답니다!

반응형

'DB > MongoDB' 카테고리의 다른 글

[Mongo] 몽고DB 기본  (1) 2024.09.09