Document DB

문서 단위로 함께 읽는 데이터를 한 덩어리로 둔다

JSON/BSON 문서를 저장하고, 문서마다 필드가 달라도 된다. 조회 단위와 문서 구조가 맞을수록 유리하다.

읽기 단위

주문과 주문 항목처럼 함께 보여줄 데이터를 한 문서에 둔다.

{ order, items[] }
유연한 필드

문서마다 optional 필드가 달라도 스키마 변경 비용이 작다.

profile.tags?
인덱스 책임

중첩 필드 검색은 인덱스를 따로 설계해야 한다.

orders.price
주의할 경계판단
문서 크기너무 큰 배열은 갱신과 전송 비용을 키운다
중복 데이터읽기는 빨라지지만 수정 일관성 책임이 생긴다
트랜잭션문서 밖 여러 개를 함께 바꾸면 복잡해진다
핵심: Document DB는 “함께 읽는 데이터”를 문서 경계로 삼을 때 가장 자연스럽다.