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의 기본 구조, 핵심 기능, 실전 활용법까지 한 번에 이해할 수 있습니다. 🙌