2장: MongoDB의 핵심 개념 – 문서 지향 데이터 모델
문서 지향 데이터 모델의 핵심 이해
몽고디비(MongoDB)의 가장 두드러진 특징은 데이터를 '문서(Document)'라는 단위로 저장한다는 점에 있다. 기존의 관계형 데이터베이스가 테이블과 행의 구조에 얽매였다면, 몽고디비는 JSON(정확히는 BSON)과 유사한 형태의 문서 안에 여러 필드와 계층 구조, 심지어 연관된 데이터를 포함해 자유롭게 데이터를 설계할 수 있다. 이 구조 덕분에 매우 다양한 데이터 구조와 변경에 신속히 대응이 가능하다.
플렉서블 스키마와 개발의 유연성
몽고디비의 컬렉션은 고정 스키마가 아닌 '플렉서블 스키마'를 채택한다. 즉, 하나의 컬렉션 내에서도 각 문서의 필드 구성과 타입이 다를 수 있다. 어떠한 필드도 얼마든지 생성하거나 누락시킬 수 있으며, 필요하다면 배열이나 중첩 오브젝트를 자유롭게 삽입할 수 있다. 이처럼 구조적 유연성은 서비스 요구사항의 변화를 빠르고 쉽게 반영하게 도와준다.
JSON과 BSON, 그리고 실전 데이터 저장
몽고디비의 문서는 프로그래머에게 친숙한 JSON 포맷을 닮았지만, 실제 저장과 처리는 바이너리 형태의 BSON으로 이뤄진다. 이 덕분에 날짜, 이진 데이터 등 복잡한 타입도 효과적으로 다룰 수 있으며, 쿼리 성능 역시 향상된다.
관계형 모델과의 결정적 차이
관계형 데이터베이스와 비교하면, 몽고디비는 문서 안에 연관 데이터를 함께 저장함으로써 "조인"의 필요성을 크게 줄인다. 예를 들어 주문 정보와 상품 정보, 배송지 등 여러 엔터티를 하나의 문서에 자연스럽게 중첩할 수 있다. 이 방식은 읽기 효율을 극대화하지만, 데이터 중복에 대한 이해와 설계적 타협이 요구된다.
실전 데이터 모델링 사례
예를 들어, 한 쇼핑몰의 고객 정보를 저장할 때, 관계형 DB는 고객 테이블과 주소 테이블을 나누고 둘을 조인해야 한다. 몽고디비에서는 한 고객 문서 내에 주소를 배열이나 오브젝트로 바로 포함할 수 있어 단일 조회만으로도 모든 핵심 정보를 얻을 수 있다.
이처럼 몽고디비의 문서 지향 모델은 다양한 애플리케이션 요구에 적합하며, 구조의 설계와 사용법이 자유롭다. 데이터를 어떻게 설계하느냐에 따라 읽기·쓰기 성능이나 유지보수 편의성까지 달라지니, 실제 모델링 단계에서 구체적인 요구 조건을 충분히 고려하는 것이 중요하다.


