스터디 교재 : 몽고디비 인 액션
http://book.naver.com/bookdb/book_detail.nhn?bid=6876243
내용은 알기 쉽게 되어있는것 같은데, 옛날 책이라 현재 몽고디비 버전(2016/11/16기준 3.2, 책 기준은 2.0)과 맞지않지만 책보다 안되거나
다른 부분은 찾아서 해결하기로.
스터디 끝날때까지 일주일안에 1포스팅은 꼭하기!!
3.2 몽고디비 메뉴얼
https://docs.mongodb.com/manual/
책의 목차
( 대충 훑어 봤을때 부록 A MongoDB 설치 와 D PHP, 자바, C++에서의 MongoDB 를 먼저 읽어보고 시작하는게 좋을듯 하다.)
제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 디스크 성능 향상 325
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