MongoDB 사용 가이드 및 특징 분석 (파란 개발자 블로그)

Source

  • Evernote/Technote scraps/mongoDB 어떻게 사용할 것인가 파란 개발자 블로그.md

Summary

본 문서는 MongoDB의 설계 철학, 주요 특징, 운영상의 주의사항, 그리고 적합한 사용 사례를 정리한 기술 노트입니다. MongoDB는 ‘거대한(humongous)’ 데이터를 위해 관계형 구조(Schema, JOIN)를 포기하고 성능과 확장성(Scalability)을 선택한 문서형 NoSQL 데이터베이스입니다. 핵심 기능인 Auto-sharding과 Replica set을 통해 분산 처리와 고가용성을 지원하며, Map Reduce를 통해 분산 데이터 처리가 가능합니다. 그러나 Config Server의 병목 현상, 제한된 Spatial Query 기능(Near, Box, Center 지원), 2GB 단위의 저장 블록 증가 및 오프라인 상태에서만 가능한 디스크 정리(Repair) 등의 운영상 불편함이 존재합니다. 따라서 빈번한 삭제/수정이 필요한 환경보다는 로그 데이터, 회원 정보, 메시징 데이터, POI/체크인 데이터 등 ‘쓰기 위주’이며 ‘단일 컬렉션이 무한정 커지는’ 대용량 데이터 저장에 적합하다고 평가합니다. 성능 테스트 결과 MySQL 대비 Insert 속도가 약 100배 빠르고, Spatial Query 성능도 우수함을 확인했습니다.

Key Points

  • 설계 철학: 관계형 연산(JOIN)을 포기하고 성능과 확장성(Scalability)을 우선시한 Schema-free 문서형 DB
  • 핵심 기능: Auto-sharding(자동 분할), Replica set(복제), Map Reduce(분산 처리)가 핵심 구성 요소
  • 운영 주의사항: Config Server 부하 집중 가능성, Spatial Query의 제한적 지원(다각형 미지원 등), 2GB 단위 블록 증가 및 오프라인 Repair 필요
  • 비추천 환경: 빈번한 Delete/Insert가 반복되어 디스크 단편화가 심해지는 환경, 관계형 연산이 필수적인 CRM/데이터마트
  • 추천 사용 사례: 로그 데이터, 글로벌 서비스 회원 정보, 메시징 데이터, POI/체크인 데이터 등 쓰기 위주인 대용량 데이터
  • 성능 평가: MySQL 대비 Insert 성능 약 100배 향상, Spatial Query(Near/Box/Center) 응답 속도 우수