Document DB

Document DB는 함께 읽는 데이터를 문서 단위로 모델링한다

RDBMS가 중복을 줄이기 위해 관계를 테이블로 나누는 경우가 많다면, Document DB는 자주 함께 조회되는 데이터를 하나의 JSON/BSON 문서에 중첩해 저장할 수 있습니다.

RDBMS

관계를 나누고 필요할 때 조합

users(id, name, email)
orders(id, user_id, date)
order_items(order_id, product, price)

중복을 줄이고 관계를 명확히 하지만, 조회 시 조인이 필요할 수 있습니다.

Document

읽기 단위에 맞춰 중첩

{
  "name": "Min",
  "orders": [
    { "product": "Laptop", "price": 1200000 },
    { "product": "Mouse", "price": 35000 }
  ]
}

조회 단위가 문서와 맞으면 추가 조회를 줄일 수 있지만, 문서 크기와 중복을 관리해야 합니다.

Fit 함께 읽는 데이터 프로필과 설정, 주문 요약처럼 한 화면에서 함께 필요한 데이터에 잘 맞습니다.
Flex 필드 변화 허용 문서마다 일부 필드가 달라도 저장할 수 있어 변화가 잦은 구조에 유리합니다.
Index 문서 내부도 설계 필요 중첩 필드 검색은 인덱스, 문서 크기, 쿼리 패턴을 함께 봐야 합니다.
Cost 중복과 갱신 일관성 같은 정보가 여러 문서에 있으면 반영 시점과 동기화 책임이 생깁니다.
정리
Document DB는 조인이 항상 필요 없는 빠른 DB가 아니라, 조회 단위가 문서 구조와 잘 맞을 때 추가 조합 비용을 줄이는 모델입니다.