같은 조회, 다른 저장 방식

Document DB의 핵심은 함께 읽는 데이터를 한 문서에 붙여 두는 것입니다.

주문 상세 화면처럼 사용자, 주문 항목, 주소를 한 번에 읽는 경우를 기준으로 보면, RDBMS는 조인으로 다시 모으고 Document DB는 처음부터 한 문서 안에 중첩해 둡니다.

기준 주문 상세 1회 조회
RDBMS

정규화된 테이블을 조회 시점에 조인

중복을 줄이고 관계를 엄격하게 관리하기 쉽습니다.

Document DB

같이 읽을 데이터를 문서 하나에 중첩

읽기 경로가 짧고 애플리케이션 객체와 모양이 가깝습니다.

저장 구조 데이터가 어디에 있나
users orders order_items

주문 관련 정보가 여러 테이블로 나뉘어 저장됩니다.

{ user: { name: "Kim" }, items: [ ... ], address: { city: "서울" } }

같이 읽을 필드를 주문 문서 안에 중첩해 둡니다.

조회 경로 읽을 때 무엇이 바뀌나
orders 조회
+ users 조인
+ order_items 조인

필요한 조각을 읽은 뒤 조인해서 최종 주문 화면을 만듭니다.

order 문서 1건 조회
-> 사용자, 항목, 주소를 함께 반환

조인 없이 한 문서만 읽어도 화면에 필요한 정보가 바로 모입니다.

운영 의미 무엇을 얻고 잃나

중복은 적지만 읽기 경로는 길어질 수 있음

같은 데이터를 여러 곳에 복사하지 않아 일관성 관리가 유리하지만, 자주 함께 읽는 데이터는 조인 비용이 붙습니다.

읽기는 빠르지만 문서 간 중복이 생길 수 있음

조인이 줄어 조회가 단순해지지만, 같은 사용자 정보가 여러 주문 문서에 반복 저장될 수 있습니다.

핵심 학습 포인트

Document DB는 “스키마가 느슨하다”보다 “같이 읽는 단위를 저장 단위로 삼는다”는 점이 더 중요합니다.

그래서 주문, 사용자 일부, 주소, 항목 목록처럼 함께 소비되는 데이터는 한 문서로 묶고, 그 대신 문서 간 중복 가능성을 받아들입니다.