Database/MongoDB 8

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

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 트랜잭션 소개데이터베이스의 논리적 처리 단위MongoDB는 복제 셋 및 샤드 클러스터 환경에서도 트랜잭션을 지원함 2. 트랜잭션 사용법세션 기반 구조MongoDB는 클라이언트-서버 간의 세션 관리를 기반으로 트랜잭션을 구현함분산 환경에서 클라이언트의 연속적인 작업을 추적하도록 하기 위함구분논리 세션 (Logical Session)서버 세션 (Server Session)정의클라이언트의 트랜잭션 흐름 추적 객체실제 트랜잭션 실행 담당역할트랜잭션 시퀀스, 시간, 인과관계 추적요청 추적 및 세션 상태 관리위치클라이언트 애플리케이션 내부MongoDB 서버 내부관계서버 세션과 연결되어 동작논리 세션이..

Database/MongoDB 2025.04.30

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

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다.1. 파이프라인, 단계 및 조정 가능 항목집계 프레임워크항목설명정의파이프라인 기반 데이터 분석·가공 도구 모음입력하나의 컬렉션출력가공된 도큐먼트 스트림단계(Stage)파이프라인의 구성 단위- 각 단계는 도큐먼트 스트림을 입력으로 받고, 가공된 도큐먼트 스트림을 출력함옵션(knobs / tunables) 각 단계는 파라미터 설정 가능 (원하는 방식으로 데이터 처리 가능) 2. 단계 시작하기: 익숙한 작업들aggregate()연산자기능$match조건 필터링$skip, $limit페이징$project필드 선택 및 재구성$sort정렬 예제더보기db.movies.aggregate( {$match: {..

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: 내림차순) 복합 인덱스복수개의 키로 구성된 인덱스모든 값을 정렬된 순서로 보관 (정렬 쿼리 성능 향상)항목설명비고 / 핵심 포인트선택성 (Selectivity)인덱스가 얼마나 좁은 범위를 스캔하는지선택성이 높을수록 좋음 (레코드 수 적을수록)컬럼 구성 우선순위인덱스 필드의 구성 순서 전략..

Database/MongoDB 2025.04.29

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

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. find()항목인자설명필터첫 번째 매개변수조건 명시 ({}: 전체 조회)프로젝션두 번째 매개변수 필드 지정 (1: 포함, 0: 제외) 예제) 필터더보기db.pageviews.find({})db.pageviews.find({pageviews: 1})db.pageviews.find({pageviews: 1, url: "www.example.org"}) 예제) 프로젝션더보기db.pageviews.find({url: "www.example.com"}, {_id: 1}) # _id 만 출력db.pageviews.find({url: "www.example.com"}, {_id: 0}) # _id 만 ..

Database/MongoDB 2025.04.28

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

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다.1. 도큐먼트 삽입 insertOne()insertMany()기능단일 도큐먼트 삽입다수 도큐먼트 일괄 삽입특징insertedId 반환→ 성공 여부 및 생성된 _id 확인 가능크기 제한- 48MB (maxMessageSizeBytes)제한 크기 초과 시 자동 분할 삽입옵션- bypassDocumentValidation: 유효성 검사 비활성화- writeConcern: 쓰기 신뢰성- bypassDocumentValidation, writeConcern- ordered: 삽입 중 에러 시 중단 여부 예시) 옵션더보기더보기bypassDocumentValidation// age는 유효성 검사 설정이 된 필..

Database/MongoDB 2025.04.28

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

크리스티나 초도로 , 섀넌 브래드쇼 , 오언 브라질 님의 "몽고DB 완벽 가이드" 책을 정리한 포스팅 입니다. 1. 도큐먼트MongoDB 데이터의 기본 단위키-값 집합ex) JSON, 맵, 해시, 딕셔너리, 객체항목내용키문자열- 정렬된 상태로 저장됨- 대소문자 구분- 중복 불가- 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