서브메뉴

본문

NoSQL & mongoDB (MongoDB Master가 해설하는)
NoSQL & mongoDB (MongoDB Master가 해설하는)
저자 : 주종면
출판사 : 데이터북
출판년 : 2014
ISBN : 9788996311461

책소개

『NoSQL & mongoDB』는 MongoDB의 주요 구조와 기술들을 도형화된 그림을 통해 체계적인 설명과 원리 위주로 설명한 교재이다. MongoDB의 핵심 솔루션 중에 하나인 샤딩 시스템과 리프리카셋 기능은 여러 대의 서버에서 구축되어지지만 하나의 서버에서도 테스트가 가능하도록 실습이 제공된다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

도서 특징
⑴ MongoDB의 주요 구조와 기술들을 도형화된 그림을 통해 체계적인 설명과 원리 위주로 학습합니다.

⑵ 각 장에서 소개하는 기술들에 대해 실습이 가능하도록 구성되어 있습니다.
MongoDB의 핵심 솔루션 중에 하나인 샤딩 시스템과 리프리카셋 기능은 여러 대의 서버에서 구축되어지지만 하나의 서버에서도 테스트가 가능하도록 실습이 제공됩니다. 교재에서 설명되는 모든 기술에 대한 "따라하기" 실습이 제공됩니다.

⑶ 저자와의 직접적인 만남(실습 자료 제공 및 질문 게시판 제공 : www.pitmongo.co.kr) 을 통해 학습하실 수 있기 때문에 학습효과를 2배로 높일 수 있습니다.

도서 구성
1장. MongoDB 시작과 종료
최근 빅데이터와 클라우드 컴퓨팅 기술의 확산과 함께 NoSQL 기술이 각광 받고 있는 것이 현실입니다. 1장에서는 NoSQL 기술이 왜 필요한지 그 역사적 배경에 대해 알아보고 MongoDB를 Startup, Shutdown 하는 방법과 절차에 대해 소개합니다.

2장. 데이터의 입력/수정/삭제
MongoDB는 하나의 데이터 저장기술이기 때문에 데이터의 입력, 수정, 삭제, 조회가 요구됩니다. 또한, 관계형 데이터베이스와 같이 트랜잭션을 제어하기 위해 COMMIT, ROLLBACK문과 유사한 데이터 처리가 요구되어지기도 합니다. 이번 장에서는 MongoDB에서 데이터 처리를 위해 알아야 할 다양한 개념과 문법이 소개됩니다.

3장. 인덱스의 생성과 관리 & 사용자 관리
NoSQL 제품 중 MongoDB가 가지고 있는 가장 큰 장점 중에 하나는 관계형 데이터베이스에서 제공하는 인덱스와 동일한 기능이 제공된다는 것입니다. 이것은 관계형 데이터베이스에 익숙한 개발자가 가장 빠르게 MongoDB에 적응할 수 있는 이유 중에 하나이기도 합니다. 또한, 인가된 사용자 만이 MongoDB에 접속하기 위해서는 사용자의 생성과 관리가 요구됩니다.

4장. Collection 설계
기존의 관계형 데이터베이스는 정규화라는 분석, 설계 기법에 의해 정형화된 데이터 구조로 생성되는 반면, NoSQL 기술의 대표적인 제품 중에 하나인 MongoDB는 비정형 데이터 구조로 설계됩니다. 초당 몇 만건 이상의 빅데이터가 발생하는 기업 환경에서 빠른 쓰기작업을 통해 데이터를 수집, 저장하기 위해서는 그에 맞는 적절한 데이터 구조가 요구되는데 이것을 위해서는 체계화된 분석, 설계 기술이 요구됩니다.

5장. 논리적 구조와 물리적 구조
MongoDB에서 데이터를 저장하는 논리적 구조를 컬렉션이라고 합니다. 하나의 컬렉션은 여러 개의 익스텐트로 구성되며 하나의 익스텐트는 여러 개의 데이터 레코드로 구성됩니다. 이러한 구조를 논리적 구조라고 합니다. MongoDB의 가장 큰 특징 중에 하나는 관계형 데이터베이스에 비해 빅 데이터의 빠른 쓰기와 읽기 작업이 가능하다는 것 입니다. 이것이 가능한 이유는 메모리 매핑을 이용한 데이터 처리 기술을 제공하기 때문인데 5장에서는 MongoDB의 물리적 구조를 자세히 설명합니다.

6장. 샤딩 시스템
초당 몇 만건의 빅 데이터가 입력되면 아무리 좋은 시스템에서도 데이터의 집중화로 인해 성능 지연 문제가 발생할 수 밖에 없습니다. 이러한 문제를 해소하기 위해 MongoDB 에서는 샤딩 시스템이라는 데이터 분산 처리기술을 제공하고 있습니다. 데이터가 집중화되었을 때 하나의 서버가 아니라 여러 대의 서버에 데이터를 분산 저장함으로써 발생하는 쓰기 대기 시간을 최소화하고 데이터의 안전한 저장과 관리가 가능하도록 해주는 솔루션 중에 하나입니다. 이 장에서는 하나의 시스템에서 여러 대의 가상 서버를 통해 샤딩 시스템을 구축하는 방법을 소개합니다.

7장. 리프리카 & 리프리카셋
빅 데이터의 효율적인 운영과 관리를 위해서 반드시 요구되는 기능 중에는 빅 데이터에 장애가 발생했을 때 얼마나 빠른 시간 내에 데이터를 원상 복구할 수 있느냐 입니다. MongoDB에서는 aster/Slave 기능, 리프리카셋 기능들을 통해 이것을 구현할 수 있습니다.

8장. MongoDB 성능 튜닝
빅 데이터의 효과적인 운영과 관리를 위해서는 MongoDB의 논리적, 물리적 구조에 대한 이해와 설계 패턴에 대한 명확한 해석을 통해 구축해야 합니다. 하지만, 대부분의 사용자들이 이러한 기술에 대한 이해 부족으로 인해 성능 지연과 같은 다양한 문제점에 노출되어 있는 것이 현실입니다. MongoDB의 튜닝은 하드웨어 튜닝, 디자인 튜닝, 아키텍처 튜닝, 문장 튜닝 등으로 나누어 수행할 수 있는데 각 방법들에 대한 구체적인 대안을 제시합니다.

9장. MongoDB 백업과 복구 & 유틸리티
빅 데이터에 대한 효율적인 수집과 저장 후 예기치 못한 장애 발생은 데이터의 유실로 이어지는데 이것은 기업 입장에서는 치명적일 수 밖에 없는 것이 현실입니다. 9장에서는 MongoDB에서 제공하는 다양한 백업과 복구 방법 그리고 MongoDB를 운영하면서 발생하는 성능 지연, 장애 현상들에 대한 로그 수집 및 관리 방법들에 대한 유틸리티를 사용하는 방법에 대해 자세히 소개합니다.
[교보문고에서 제공한 정보입니다.]

목차정보

머리말 3
추천사 5
책의 특징과 구성 9
CHAPTER 1 NoSQL 개념 19
1.1 NoSQL이란? 20
1.2 NoSQL의 시대적 요구 21
1.3 NoSQL의 장점 23
1.4 NoSQL의 종류 27
1.5 NoSQL 제품군 28
1.6 적용 사례 31

CHAPTER 2 MongoDB 설치 및 데이터 처리 33
2.1 MongoDB란? 34
2.1.1 용어 설명(Terminology) 36
2.1.2 설치 환경 및 지원 드라이버 37
2.2 MongoDB 시작과 종료 41
2.3 데이터 처리 47
2.3.1 Collection 생성과 관리 47
2.3.2 데이터의 Insert & Update & Remove 50
2.3.3 JSON 타입과 BSON 타입 54
2.3.4 Data Type 종류 56
2.3.5 연산자(Operator) 종류 65
2.3.6 빅 데이터의 추출과 분석 78
2.3.7 MapReduce 기능 94
2.3.8 Commit과 Rollback 107

CHAPTER 3 인덱스의 생성과 관리 & 사용자 관리 113
3.1 인덱스 생성과 관리 114
3.2 인덱스 재 구성과 삭제 117
3.3 인덱스의 종류 119
3.3.1 Single??key 인덱스와 Compound key 인덱스 119
3.3.2 Non??Unique 인덱스 & Unique 인덱스 123
3.3.3 Sparse 인덱스 125
3.3.4 Background 인덱스 128
3.3.5 Covered 인덱스 130
3.3.6 GeoSpatial 인덱스 132
3.3.7 GeoMetry 인덱스 138
3.4 사용자 생성과 관리 150
3.5 사용자 권한 롤 155

CHAPTER 4 MongoDB를 위한 Data Modeling 159
4.1 MongoDB의 Data Modeling 160
4.2 MongoDB 설계 기준 163
4.3 MongoDB 설계의 주요 특징 165
4.3.1 Embedded Document(Rich Document) 170
4.3.2 Extent Document(Rich Document) 172
4.3.3 Link 175
4.3.4 DBRef 함수를 이용한 Link 178
4.3.5 N:M 관계 패턴 181
4.3.6 상속 패턴 185
4.3.7 계층형 패턴 189
4.4 실습 시나리오 192

CHAPTER 5 논리적 구조&물리적 구조 195
5.1 MongoDB 구조 196
5.2 물리적 구조 198
5.2.1 데이터 파일 & 저널(Journal) 파일 198
5.3 논리적 구조 202
5.3.1 익스텐트와 데이터 레코드 205
5.3.2 익스텐트와 인덱스 레코드 209
5.4 메모리 구조 213
5.4.1 적정 메모리 요구 사항 217
5.4.2 저널 파일 220
5.5 Lock 정책 222
5.5.1 Gobal Lock(Database Lock) & PageFault 224
5.6 GridFS 226
5.7 MongoDB 환경 명령어 232
5.8 MongoDB 관리 명령어 238

CHAPTER 6 Sharding System 243
6.1 Sharding System이란? 244
6.2 Sharding 구축을 위한 시스템 환경 246
6.3 CONFIG 서버 250
6.4 MongoS 프로세스 252
6.5 Sharding 환경 설정 확인 254
6.5.1 Shard 시스템 테스트 256
6.6 Sharding 시스템 구축 시 고려 사항 258
6.7 Shard 서버의 추가와 삭제 265
6.8 Chunk 크기 관리 269
6.9 샤딩 System의 문제점 273

CHAPTER 7 Replica & ReplicaSets 277
7.1 Master & Slave 서버 278
7.1.1 MASTER & SLAVE 서버 환경 설정 280
7.2 ReplicaSets 282
7.2.1 Priority(우선 순위) 286
7.2.2 멤버의 유형 287
7.2.3 Replica Sets 환경 설정 290
7.2.4 FailOver 293
7.2.5 복제 서버의 추가와 삭제 296
7.2.6 OpLog의 크기 설정 298
7.2.7 리프리카셋 멤버의 동기화 301

CHAPTER 8 MongoDB 성능 튜닝 305
8.1 Performance Tuning Point 306
8.2 디자인 튜닝(Design Tuning) 308
8.3 문장 튜닝(Statement Tuning) 314
8.3.1 Profiling 시스템 316
8.3.2 Profiler 환경 분석 결과 및 상태 확인 318
8.3.3 Profile Collection의 재생성 및 관리 320
8.3.4 Hint 함수와 Explain 함수 322
8.4 아키텍처 튜닝(Architecture Tuning) 324
8.5 인스턴스 튜닝(Instance Tuning) 329
8.6 하드웨어 튜닝(Hardware Tuning) 333
8.6.1 mongoperf 유틸리티 335

CHAPTER 9 MongoDB 백업/복구 & 유틸리티 337
9.1 백업과 복구 유형 338
9.2 MongoDump & MongoRestore 341
9.2.1 MongoDump 342
9.2.2 MongoRestore 345
9.3 BsonDump 349
9.4 MongoImport & MongoExport 352
9.4.1 MongoExport 352
9.4.2 MongoImport 353
9.5 CopyDatabase & CloneDatabase 358
9.5.1 CopyDatabase 358
9.5.2 CloneDatabase 360
9.6 MongoStat & MongoTop 361
9.6.1 MongoStat 유틸리티 361
9.6.2 MongoTop 유틸리티 363
9.6.3 Web Monitoring 364
9.6.4 MongoDB Log 수집 & 분석 366

Appendix 369
A.1 Hadoop-MongoDB 연동을 위한 환경 설정 370
A.2 올챙이 툴 소개 384
A.2.1 로그인 및 유저관리 385
A.2.2 Connection Manager 388
A.2.3 Object Explorer 뷰 390
A.2.4 Database Information 에디터 392
A.2.5 Find Collection 396
A.2.6 GridFS 기능 398
A.2.7 Profiling 399
A.2.8 ERD 401
A.2.9 Import 401
INDEX 385
[교보문고에서 제공한 정보입니다.]