Database/MongoDB 8

[몽고DB 완벽 가이드] 8. 트랜잭션

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 트랜잭션 소개데이터베이스의 논리적 처리 단위복제 셋과 샤드 전체에 ACID 호환 트랜잭션이 적용됨 2. 트랜잭션 사용법세션 기반 MongoDB는 세션을 사용하여 트랜잭션을 구현함MongoDB는 여러 노드로 구성된 분산 시스템분산 환경에서 클라이언트의 연속적인 작업을 식별하고 추적할 수 있는 구조가 필요함구분논리 세션 (Logical Session)서버 세션 (Server Session)정의클라이언트 측에서 트랜잭션을 추적하고 관리하기 위한 객체MongoDB 서버 측에서 논리 세션을 실행하기 위한 실제 세션역할트랜잭션의 시퀀스, 시간, 인과성 추적세션 ID 기반 요청 추적 및 세션 상태 관리..

Database/MongoDB 2025.04.30

[몽고DB 완벽 가이드] 7. 집계 프레임워크

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다.1. 파이프라인, 단계 및 조정 가능 항목집계 프레임워크항목설명정의파이프라인을 기반으로 데이터를 분석·가공하는 도구 모음입력하나의 컬렉션 (collection)출력가공된 도큐먼트의 스트림 (stream)단계(Stage)파이프라인의 구성 단위- 각 단계는 하나의 작업을 수행하고 도큐먼트를 변형- 각 단계는 도큐먼트 스트림을 입력으로 받고, 가공된 도큐먼트 스트림을 출력함- knobs / tunables각 단계는 매개변수화(옵션화) 가능하여 원하는 방식으로 데이터 처리 가능 2. 단계 시작하기: 익숙한 작업들aggregate()$match$skip$limit$projection$sort 예제더보기d..

Database/MongoDB 2025.04.30

[몽고DB 완벽 가이드] 6. 특수 인덱스와 컬렉션 유형

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 전문 검색을 위한 인덱스검색 관련 키워드 (일치, 정규 표현식 등) 은 한계가 존재함쿼리 속도가 느리며, 문법과 같은 언어 특성을 반영하기도 쉽지 않음 텍스트 인덱스문자열 기반의 데이터를 빠르게 검색할 수 있도록 도와주는 인덱스역색인 구조로 저장됨 (단어 -> 문서 목록)항목장점한계비용/성능 문제검색 성능빠른 텍스트 검색복잡한 조건 검색에는 제한 있음 - 정규식복잡한 쿼리는 성능 저하 발생텍스트 처리전처리 지원1. 토큰화2. 소문자화3. 정지어 제거 (a, the, is 등)4. 형태소 분석5. 중복 제거문법적 의미나 자연어 이해는 어려움비용 발생- 형태소 분석 - 인덱스 갱신인덱스 구조/..

Database/MongoDB 2025.04.30

[몽고DB 완벽 가이드] 5. 인덱싱

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 인덱싱 소개컬렉션 스캔인덱스를 사용하지 않는 쿼리컬렉션 풀스캔이 일어남 기본 인덱스자주 사용되는 쿼리와 빨리 수행되어야 하는 쿼리의 공통적인 키 셋에 적용 예제더보기db.users.createIndex({"name": 1}) # name 필드에 대해 인덱스 생성 (1: 오름차순, -1: 내림차순) 인덱스 선택 기준쿼리 모양 확인검색할 필드, 정렬 기준 등쿼리 플랜 생성쿼리에 사용될 수 있는 인덱스들 각각에 대해 생성생성된 쿼리 플랜의 쿼리 성능 테스트 (직접 백그라운드에서 병렬로 실행해봄)여러 레이스로 경쟁시켜, 가장 높은 성능에 도달하는 쿼리를 선택 복합 인덱스복수개의 키로 구성된 인덱스..

Database/MongoDB 2025.04.29

[몽고DB 완벽 가이드] 4. 쿼리

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. find()필터첫 매개변수를 필터로 사용함전체 조회 시 빈 도큐먼트 전달여러 키-값 쌍을 전달할 수 있음 (AND) 예제더보기db.pageviews.find({})db.pageviews.find({pageviews: 1})db.pageviews.find({pageviews: 1, url: "www.example.org"}) 반환받을 키 지정두번째 매개변수를 사용함반환 받고싶은 키를 프로젝션할 수 있음 (1)반환을 제외할 키를 프로젝션할 수 있음 (0) 예제더보기db.pageviews.find({url: "www.example.com"}, {_id: 1}) # _id 만 출력db.pagevi..

Database/MongoDB 2025.04.28

[몽고DB 완벽 가이드] 3. 도큐먼트 생성, 갱신, 삭제

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다.1. 도큐먼트 삽입단일 삽입과 일괄 삽입 API 제공 insertOne()insertMany()기능한 번에 도큐먼트 한 개 삽입여러 도큐먼트 한 번에 삽입특징삽입 결과로 insertedId 반환→ 성공 여부와 생성된 _id 확인 가능전체 데이터 크기 제한- 48MB (maxMessageSizeBytes)- 초과 시 자동 분할 삽입 시도옵션- bypassDocumentValidation: 유효성 검사 유무- writeConcern: 쓰기 신뢰성 (write acknowledgment) - bypassDocumentValidation: 유효성 검사 유무- writeConcern: 쓰기 신뢰성 (wr..

Database/MongoDB 2025.04.28

[몽고DB 완벽 가이드] 2. 몽고DB 기본

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 도큐먼트MongoDB 데이터의 기본 단위항목내용형태키-값 집합 (Key-Value Pair)- 키문자형- 정렬된 상태로 저장됨- 대소문자를 구분함- 중복 불가- null 포함 불가특수 문자- . (점)과 $는 특별한 의미를 가짐- 값데이터형과 대소문자를 구분함자료구조다양한 프로그래밍 언어의 자료구조와 유사- 맵, 해시, 딕셔너리, 객체 등 2. 컬렉션도큐먼트의 모음보통 같은 구조의 도큐먼트를 그룹화쿼리 속도 향상효율적인 인덱싱데이터 지역성 향상 특징항목내용동적 스키마- 하나의 컬렉션 안에 서로 다른 구조의 도큐먼트 존재 가능네이밍 규칙- 빈 문자열 불가- null 문자 불가- system으..

Database/MongoDB 2025.04.27

[몽고DB 완벽 가이드] 1. 몽고DB 소개

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. MongoDB의 만들어진 배경과 지향점, 선택해야 하는 이유를 설명합니다. 1. 손쉬운 사용Document-Based Database항목설명예시 (MongoDB)분산 확장의 용이성분산 시스템에서 데이터 분산을 쉽게 관리할 수 있음샤딩 기능 지원유연한 모델데이터를 미리 정의된 스키마로 저장 ❌- 필드 추가 및 변경이 간편➡️ 빠른 개발 가능도큐먼트의 필드를 동적으로 추가하거나 삭제 가능ex) JSON복잡한 계층관계 표현 편리도큐먼트 내에서 내장 도큐먼트와 배열 사용 ✅- 복잡한 구조를 하나의 레코드로 표현할 수 있음.➡️ OOP 개발 적합embedded documents, arrays 지원 2...

Database/MongoDB 2025.04.27