MongoDB 소개 1. MongoDB 개요 - 정의: C++로 작성된 오픈 소스 지향 NoSQL 데이터베이스입니다. - 문서 지향(Document-oriented): 데이터를 테이블 형식이 아닌 유연한 JSON과 유사한 문서(BSON)로 저장합니다. - 확장성: 수평적 확장이 용이하며 대규모 데이터 처리에 적합합니다. 2. 유연한 스키마 (BSON vs ...
데이터 모델링 1. 관계 설계 전략 MongoDB에서 관계를 모델링하는 두 가지 주요 방법이 있습니다. 임베딩 (Embedding) - 정의: 연관된 데이터를 하나의 문서 내에 중첩된(nested) 필드로 저장. - 장점: 단일 읽기 작업으로 데이터를 모두 가져올 수 있어 성능이 뛰어남 (Atomic 작업). - 사용 사례: 1:1 관계, 데이터가 적은 1...
집계 프레임워크 1. 집계 파이프라인 (Aggregation Pipeline) 개요 여러 단계(Stage)를 거쳐 데이터를 필터링, 그룹화 및 변환하는 강력한 엔진입니다. 주요 파이프라인 단계 (Stages) - $match: 쿼리 조건으로 문서를 필터링. 전체 성능을 위해 파이프라인 초기에 배치하는 것이 좋음. - $group: 특정 키를 기준으로 문서를...
인덱싱 및 성능 1. 인덱스 유형 (Index Types) - 단일 필드 (Single Field): 하나의 필드에 대해 생성. - 복합 인덱스 (Compound Index): 두 개 이상의 필드를 조합. 필드의 순서가 중요함. - 멀티키 (Multikey): 배열 필드 내의 요소들을 인덱싱. - TTL (Time-To-Live): 특정 시간 후 문서를 자...
복제 1. 레플리카 셋 아키텍처 데이터 가용성을 보장하기 위해 여러 서버에 데이터를 복제하는 방식입니다. - Primary: 모든 쓰기 작업을 처리하고 Oplog(Operations Log)를 생성. - Secondary: Primary의 Oplog를 복제하여 데이터를 동기화. 읽기 작업 분산 가능. - Arbiter: 데이터를 저장하지 않으며 투표(Ele...