Choose a default theme

You can change your theme from the menu

MongoDB

Earlier revision · 1View current content

MongoDB는 BSON 문서를 컬렉션에 저장하는 데이터베이스이다. 문서는 중첩 객체와 배열을 포함할 수 있으며, 같은 컬렉션의 문서가 반드시 동일한 필드를 가질 필요는 없다. 이러한 유연성은 스키마 설계가 불필요하다는 뜻이 아니다.

분야

문서형 데이터베이스

문서와 접근 패턴

자주 함께 읽는 데이터를 함께 저장하면 필요한 정보를 적은 접근으로 가져올 수 있다. 반면 함께 바뀌지 않거나 크기가 계속 커지는 데이터는 별도 문서와 참조로 나눌 수 있다. 임베딩과 참조의 선택은 실제 조회·갱신 패턴에 따라 달라진다.

상품 문서 예시

서점의 책과 전자기기의 상세 속성은 서로 다르다. 공통 필드로 상품 번호·이름·가격을 두고 유형별 속성을 다르게 구성할 수 있다. 그러나 가격의 자료형이 문서마다 제각각이면 정렬과 계산이 예상대로 동작하지 않을 수 있으므로 필요한 항목에는 검증 규칙을 둔다.

중복과 갱신 경계

주문 시점의 배송 주소를 주문 문서에 남기는 것은 당시 사실을 보존하는 설계가 될 수 있다. 반대로 최신 사용자 주소를 모든 주문에 중복 저장한 뒤 일괄 갱신하려 하면 유지 비용이 커진다. 어떤 값이 역사적 기록이고 어떤 값이 최신 참조인지 먼저 구별한다.

인덱스와 운영

문서 모델도 인덱스와 질의 계획이 중요하다. 필드가 유연하다는 이유로 모든 조건을 빠르게 검색할 수 있는 것은 아니다. 데이터의 성장, 문서 크기, 중복 갱신 비용을 검토하고 운영 규모 이전에 대표 조회로 모델을 확인한다.

참고 자료

관련 기술 비교

데이터베이스

관계형

MySQL · PostgreSQL · MariaDB · SQLite

NoSQL

Redis · MongoDB · Apache Cassandra

스토리지 엔진

InnoDB · RocksDB · MyRocks