본문 바로가기
개발 Story/몽고디비

01.몽고디비 스터디 시작

by niee 2016. 11. 16.
반응형

스터디 교재 : 몽고디비 인 액션


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


반응형