목차
제1부 시작하기
1장 현대 웹을 위한 도큐먼트 데이터베이스 = 3
1.1 클라우드에서 태어나다 = 5
1.2 MongoDB의 핵심 기능 = 6
1.2.1 도큐먼트 데이터 모델 = 6
1.2.2 애드혹 질의 = 10
1.2.3 세컨더리 인덱스 = 12
1.2.4 복제 = 13
1.2.5 속도와 내구성 = 13
1.2.6 확장 = 15
1.3 MongoDB 코어 서버와 툴 = 17
1.3.1 코어 서버 = 17
1.3.2 자바스크립트 셸 = 18
1.3.3 데이터베이스 드라이버 = 19
1.3.4 커맨드라인 툴 = 20
1.4 MongoDB를 사용하는 이유 = 21
1.4.1 MongoDB와 다른 데이터베이스의 비교 = 22
1.4.2 사용 예와 배포 = 26
1.5 팁과 한계 = 28
1.6 요약 = 29
2장 자바스크립트 셸을 통한 MongoDB = 31
2.1 MongoDB 셸 경험하기 = 32
2.1.1 셸 시작하기 = 32
2.1.2 삽입과 질의어 = 33
2.1.3 도규먼트 업데이트 = 35
2.1.4 데이터 삭제 = 38
2.2 인덱스 생성과 질의 = 39
2.2.1 대용량 컬렉션 생성 = 39
2.2.2 인덱싱과 explain() = 41
2.3 기본적인 관리 = 44
2.3.1 데이터베이스 정보 얻기 = 44
2.3.2 명령어가 작동하는 방식 = 46
2.4 도움말 얻기 = 48
2.5 요약 = 49
3장 MongoDB를 이용한 프로그래밍 = 51
3.1 루비를 통해 보는 MongoDB = 52
3.1.1 설치와 연결 = 52
3.1.2 루비에서 도큐먼트 삽입 = 54
3.1.3 쿼리와 커서 = 55
3.1.4 업데이트와 삭제 = 57
3.1.5 데이터 베이스 명령어 = 58
3.2 드라이버 작동 원리 = 59
3.2.1 객체 ID 생성 = 59
3.2.2 BSON = 61
3.2.3 네트워크 통신 = 63
3.3 트위터 모니터링 미니 애플리케이션 구축 64
3.3.1 설정 = 65
3.3.2 데이터 수집 = 66
3.3.3 아카이브 열람 = 68
3.4 요약 = 72
제2부 MongoDB 애플리케이션 개발
4장 도큐먼트 지향 데이터 = 75
4.1 스키마 설계 원리 = 76
4.2 전자상거래 데이터 모델 설계 = 77
4.2.1 상품과 카테고리 = 79
4.2.2 유저와 오더 = 84
4.2.3 상품평 = 87
4.3 실제적 세부사항: 데이터베이스, 컬렉션, 도큐먼트 = 88
4.3.1 데이터베이스 = 88
4.3.2 컬렉션 = 92
4.3.3 도큐먼트와 인서트 = 96
4.4 요약 = 102
5장 쿼리와 집계 = 103
5.1 전자상거래 쿼리 = 104
5.1.1 상품, 카테고리, 리뷰 = 104
5.1.2 유저와 오더 = 107
5.2 MongoDB의 질의어 = 109
5.2.1 질의 실렉터 = 110
5.2.2 쿼리 옵션 = 122
5.3 오더 집계 = 125
5.3.1 유저별 리뷰 그룹핑 = 125
5.3.2 지역별 오더를 위한 맵-리듀스 = 127
5.4 집계에 대한 추가학습 = 129
5.4.1 최대와 최소 = 129
5.4.2 distinct = 130
5.4.3 그룹 = 130
5.4.4 맵-리듀스 = 132
5.5 요약 = 135
6장 업데이트, 원자적 연산, 삭제 = 137
6.1 도큐먼트 업데이트 = 138
6.2 전자상거래 업데이트 = 141
6.2.1 상품과 카테고리 = 141
6.2.2 리뷰 = 146
6.2.3 오더 = 148
6.3 원자적 도큐먼트 프로세싱 = 151
6.3.1 오더 상태 전이 = 152
6.3.2 재고 관리 = 154
6.4 실제적인 세부사항: MongoDB 업데이트와 삭제 = 159
6.4.1 업데이트 타입과 옵션 = 160
6.4.2 업데이트 연산자 = 162
6.4.3 findAndmodify 명령 = 167
6.4.4 삭제 = 168
6.4.5 동시성, 원자성, 고립 = 168
6.4.6 업데이트 성능 = 169
6.5 요약 = 171
제3부 MongoDB 마스터하기
7장 인덱싱과 쿼리 최적화 = 175
7.1 인덱싱의 이론적 고찰 = 176
7.1.1 개념 실험 = 176
7.1.2 인덱싱 핵심 개념 = 180
7.1.3 B트리 = 185
7.2 인덱싱의 실제 = 186
7.2.1 인덱스 타입 = 187
7.2.2 인덱스 관리 = 190
7.3 쿼리 최적화 = 196
7.3.1 느린 쿼리 탐지 = 196
7.3.2 느린 쿼리 분석 = 200
7.3.3 쿼리 패턴 = 208
7.4 요약 = 211
8장 복제 = 213
8.1 복제 개관 = 213
8.1.1 복제의 중요성 = 214
8.1.2 복제의 사용 예 = 215
8.2 복제셋 = 217
8.2.1 셋업 = 217
8.2.2 복제 작동 방식 = 223
8.2.3 관리 = 231
8.3 마스터-슬래이브 복제 = 241
8.4 드라이버와 복제 = 241
8.4.1 연결과 장애조치 = 242
8.4.2 쓰기 concern = 245
8.4.3 읽기 스케일링 = 246
8.4.4 태깅 = 248
8.5 요약 = 250
9장 샤딩 = 251
9.1 샤딩 개관 = 252
9.1.1 샤딩이란 = 252
9.1.2 샤딩 작동 방식 = 254
9.2 샘플 샤딩 클러스터 = 260
9.2.1 셋업 = 260
9.2.2 샤딩 클러스터에서의 쓰기 연산 = 266
9.3 샤딩 클러스터 질의 및 인덱싱 = 272
9.3.1 샤드 쿼리 타입 = 273
9.3.2 인덱싱 = 278
9.4 샤드 키 선택 = 279
9.4.1 비효과적인 샤드 키 = 279
9.4.2 이상적인 샤드 키 = 282
9.5 실제 서비스에서의 샤딩 = 283
9.5.1 배포와 구성 = 283
9.5.2 관리 = 289
9.6 요약 = 295
10장 배포와 관리 = 297
10.1 배포 = 297
10.1.1 배포 환경 = 298
10.1.2 서버 설정 = 303
10.1.3 데이터 들여오기와 내보내기 = 306
10.1.4 보안 = 307
10.2 모니터링과 진단 = 311
10.2.1 로깅 = 311
10.2.2 모니터링 도구 = 312
10.2.3 모니터링 외부 애플리케이션 = 316
10.2.4 진단 도구(mongosniff, bsondump) = 317
10.3 유지보수 = 318
10.3.1 백업과 복구 = 318
10.3.2 압축과 수리 = 321
10.3.3 업그레이드 = 322
10.4 성능 문제 해결 = 323
10.4.1 인덱스와 쿼리 효율성 = 324
10.4.2 램 추가 = 324
10.4.3 디스크 성능 향상 = 32
10.4.4 수평적 확장 = 326
10.4.5 전문가의 도움 = 326
10.5 요약 = 327
부록 A. MongoDB 설치 = 329
A.1 설치 = 329
A.1.1 리눅스 = 330
A.1.2 맥 OS X = 331
A.1.3 윈도우 = 333
A.1.4 소스 컴파일 = 334
A.1.5 문제 해결 = 335
A.2 기본 설정 옵션 = 336
A.3 루비 설치 = 338
A.3.1 리눅스와 맥 OS X = 338
A.3.2 윈도우 = 339
부록 B. 설계 패턴 = 341
B.1 패턴 = 341
B.1.1 임베드 vs. 레퍼런스 = 341
B.1.2 일대다 = 342
B.1.3 다대다 = 343
B.1.4 트리 = 344
B.1.5 작업자 큐 = 348
B.1.6 동적 속성 = 349
B.1.7 트랜잭션 = 351
B.1.8 지역성 및 선 계산 = 352
B.2 안티 패턴 = 354
B.2.1 부주의한 인덱싱 = 354
B.2.2 모틀리(Motley) 타입 = 354
B.2.3 버킷(bucket) 컬렉션 = 354
B.2.4 깊게 중첩된 대용량 도큐먼트 = 354
B.2.5 사용자당 한 컬렉션 = 355
B.2.6 샤드 불가능한 컬렉션 = 355
부록 C. 이진 데이터 및 GridFS = 357
C.1 간단한 이진 저장 = 358
C.1.1 섬네일 저장 = 358
C.1.2 MD5 저장 = 359
C.2 GridFS = 360
C.2.1 루비에서의 GridFS = 361
C.2.2 mongofiles 유틸리티 = 364
부록 D. PHP, 자바, C++에서의 MongoDB = 363
D.1 PHP = 366
D.1.1 도큐먼트 = 366
D.1.2 연결 = 366
D.1.3 샘플 프로그램 = 367
D.2 자바 = 368
D.2.1 도큐먼트 = 368
D.2.2 연결 = 369
D.2.3 샘플 프로그램 = 370
D.3 C++ = 371
D.3.1 도큐먼트 = 371
D.3.2 연결 = 373
D.3.3 샘플 프로그램 = 374
부록 E. 공간적 인덱싱 = 377
E.1 공간 인덱스 기초 지식 = 378
E.2 고급 질의 = 380
E.3 복합 공간 인덱스 = 382
E.4 구면 기하학 = 382
찾아보기 = 384