Database
Chapter 8-41. NoSQL MongoDB(1/6)
Chansman
2025. 3. 26. 17:28

📌 NoSQL MongoDB – 문서 기반 NoSQL 데이터베이스 완전 정리!
🧠 MongoDB란?
MongoDB는 NoSQL 데이터베이스의 한 종류로, 문서 기반(Document-Oriented) 데이터베이스입니다. 전통적인 테이블-행 구조 대신, JSON 또는 BSON 형식의 문서(Document) 로 데이터를 저장하며, 대규모 데이터 환경에서 유연성과 확장성을 제공합니다.
🔍 주요 특징 및 핵심 개념
1️⃣ 문서 기반 데이터베이스
- 데이터는 문서(Document) 단위로 저장
- BSON(Binary JSON) 형식으로 표현됨 → 빠른 처리 가능
- 문서들이 모여 컬렉션(Collection)을 구성함
2️⃣ 유연한 스키마
- 동적 스키마(Dynamic Schema): 문서마다 다른 구조 가능
- 필드를 자유롭게 추가/삭제 가능 → 데이터 구조 변경이 쉬움
3️⃣ JSON/BSON 형식
- MongoDB의 데이터는 JSON과 유사한 구조로 입력
- 실제 저장은 BSON(Binary JSON)으로 변환되어 성능 향상
📦 JSON 예시
{
"name": "John",
"age": 30,
"city": "New York"
}
📦 BSON 예시 (해석)
- \x16\x00\x00\x00 → 전체 문서 크기
- name\x00 → 필드명, John\x00 → 값
- age\x00 → 필드명, 30 → 숫자 값
- city\x00 → 필드명, New York → 문자열
📝 BSON은 직렬화/역직렬화 속도가 빠르며, MongoDB의 성능 핵심 요소입니다.
4️⃣ 높은 확장성 (Scalability)
- 수평적 확장(Horizontal Scaling) 지원
- 데이터를 여러 서버에 분산 저장
- 샤딩(Sharding) 기술로 자동 분산 처리
🧩 샤딩 개념
요소 설명
샤드(Shard) | 독립적인 서버 노드, 각자 데이터를 가짐 |
샤딩 키 | 데이터를 분산할 기준 필드 |
mongos | 라우터 역할, 쿼리를 적절한 샤드로 분배 |
📈 새로운 샤드를 추가하면 처리량이 선형 증가 → 대규모 시스템에 적합
🌍 Zone Sharding
- 지역 기반 데이터 분산을 지원
- 데이터 지역성을 보장하고 효율적인 트래픽 분산 가능
5️⃣ 인덱싱과 검색 기능
- 다양한 인덱스 지원 (단일 필드, 복합, 해시, 텍스트 등)
- 쿼리 성능 향상을 위해 적절한 인덱싱 설계 필수
db.users.createIndex({ name: 1 })
- 위 명령은 name 필드에 오름차순 인덱스를 생성함
💡 MongoDB 핵심 요약
항목 설명
문서 기반 저장 | JSON(BSON) 형태로 문서를 저장 |
유연한 스키마 | 스키마가 자유로워 구조 변경이 쉬움 |
수평 확장성 | 샤딩을 통해 서버 간 분산 처리 가능 |
인덱싱 | 다양한 인덱스를 활용한 고속 검색 가능 |
실시간 처리 | 대용량, 실시간 데이터 처리에 강력함 |
✅ 정리 – MongoDB는 어떤 상황에 적합할까?
- 빠르게 변화하는 데이터 구조가 필요한 경우
- 웹/모바일 앱의 실시간 사용자 데이터 저장
- 로그, 세션, 채팅 메시지 등 반정형 데이터 처리
- 글로벌 서비스 → Zone Sharding으로 지역성 보장
MongoDB는 유연한 스키마, 수평 확장성, 고성능 쿼리 기능을 통해 현대적인 웹 서비스에서 중요한 역할을 합니다.
📚 참고 자료
- MongoDB 공식 문서: https://www.mongodb.com/docs
- 무신사 서비스의 NoSQL 도입 사례
이 글을 통해 MongoDB의 기본 구조, 핵심 기능, 실전 활용법까지 한 번에 이해할 수 있습니다. 🙌