주문 상세처럼 사용자, 항목 목록, 상태가 한 번에 필요할 때는 저장 구조도 그 조회 단위에 맞추는 편이 빠르게 읽힙니다.
JSON/BSON은 중첩 객체와 배열을 바로 담을 수 있어서 주문 1건의 문맥을 한 문서 안에 유지합니다.
{
"_id": "order_001",
"user": { "id": 1001, "name": "김철수" },
"items": [
{ "product": "노트북", "qty": 1, "price": 1500000 },
{ "product": "마우스", "qty": 2, "price": 50000 }
],
"status": "shipped",
"total": 1600000
}
주문과 함께 읽는 고객 문맥을 같은 문서 안에 포함합니다.
반복되는 주문 항목을 배열 그대로 보관해 계층형 데이터를 자연스럽게 표현합니다.
현재 상태와 요약값을 같은 원자적 단위로 읽어 화면이나 API 응답에 바로 씁니다.
정규화에는 유리하지만, 화면에 필요한 묶음을 조회 시점에 다시 만들어야 합니다.
자주 함께 조회되는 범위를 문서에 모아 조인 단계 없이 바로 사용할 수 있습니다.
사용자 프로필, 상품 카탈로그, 주문처럼 객체 안에 하위 정보가 자연스럽게 딸려오는 경우입니다.
문서 하나가 의미 있는 저장 단위가 되면 저장과 조회 경계가 명확해지고 애플리케이션 코드도 단순해집니다.
Document Store는 관계를 없애는 모델이 아니라, 자주 함께 조회되는 관계를 한 문서 안으로 끌어와 중첩 구조로 저장하는 방식입니다.