서브메뉴

본문

New NoSQL & mongoDB
New NoSQL & mongoDB
저자 : 주종면
출판사 : 데이터북
출판년 : 2020
ISBN : 9788996311409

책소개

⑴ 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에서는 Master/Slave 기능, 리프리카셋 기능들을 통해 이것을 구현할 수 있습니다.

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

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

목차정보

머리말
추천사
책의 특징과 구성

CHAPTER 1. NoSQL 개념
1.1 NoSQL이란?
1.2 NoSQL의 시대적 요구
1.3 NoSQL의 장점
1.4 NoSQL의 종류
1.5 NoSQL 제품군
1.6 MongoDB EcoSystem
1.7 적용 사례

CHAPTER 2. MongoDB 설치 및 데이터 처리
2.1 MongoDB란?
2.1.1 용어 설명(Terminology)
2.1.2 설치 환경 및 지원 드라이버
2.1.3 MongoDB 발전 추이
2.2 MongoDB 시작과 종료
2.2.1 MongoDB 서버 시작
2.2.2 MongoDB 서버 종료
2.2.3 기능 호환 버전 (feature compatibility version)
2.3 데이터 처리
2.3.1 Collection 생성과 관리
2.3.2 Insert & Update & Remove
2.3.3 Unique ID
2.3.4 JSON 타입과 BSON 타입
2.3.5 Data Type 종류
2.3.6 연산자(Operator) 종류
2.3.7 빅 데이터의 추출과 분석
2.3.8 MapReduce 기능
2.4 Lock 정책
2.4.1 Isolation과 Transaction

CHAPTER 3. 인덱스의 생성과 관리&사용자 관리
3.1 인덱스 생성과 관리
3.2 인덱스 재 구성과 삭제
3.3 인덱스의 종류
3.3.1 Single?key 인덱스와 Compound key 인덱스
3.3.2 Non?Unique 인덱스 & Unique 인덱스
3.3.3 Sparse 인덱스
3.3.4 Partial 인덱스
3.3.5 Background 인덱스
3.3.6 Covered 인덱스
3.3.7 GeoSpatial 인덱스
3.3.8 GeoMetry 인덱스
3.3.9 wildCard Index
3.4 사용자 생성과 관리
3.4.1 passwordPrompt() 메쏘드
3.5 시스템 롤과 사용자 롤
3.6 Auditing 기능
3.7 Client Side Field Level Encryption

CHAPTER 4. MongoDB를 위한 Data Modeling
4.1 MongoDB의 Data Modeling
4.2 MongoDB 설계 주요 특징
4.2.1 설계 개념
4.2.2 Rich Document 구조
4.2.3 중첩 구조
4.2.4 논-스키마 구조
4.2.5 비정형 데이터 구조
4.2.6 유연한 서버 구조
4.3 MongoDB 설계 기준
4.4 MongoDB 설계 패턴
4.4.1 Embedded Document(Rich Document)
4.4.2 Extent Document(Rich Document)
4.4.3 Link
4.4.4 DBRef 함수를 이용한 Link
4.4.5 N:M 관계 패턴
4.4.6 상속 패턴
4.4.7 계층형 패턴
4.4.8 View
4.4.9 Materialized View
4.5 Validator
4.5.1 $jsonSchema 연산자
4.6 Collection Diagram
4.7 Logical 설계
4.7.1 Database 설계
4.7.2 사용자 설계
4.8 실습 시나리오
4.8.1 실습 시나리오(영업관리 시스템)
4.8.2 실습 시나리오(비디오 렌털관리 시스템)
4.8.3 실습 시나리오(호텔객실 예약관리 시스템)

CHAPTER 5. 논리적 구조& 물리적 구조
5.1 MongoDB 서버 구조
5.2 스토리지 엔진
5.2.1 WiredTiger 저장엔진
5.2.2 Memory Mapping 저장엔진
5.3 Gobal Lock & PageFault
5.4 Text Search 엔진
5.5 GridFS
5.6 MongoDB 환경 명령어
5.7 MongoDB 관리 명령어

CHAPTER 6. Sharding System
6.1 Sharding System이란?
6.2 Sharding 구축을 위한 시스템 환경
6.3 CONFIG 서버
6.4 MongoS 프로세스
6.5 Sharding 환경 설정
6.5.1 샤드 서버 테스트
6.6 Sharding 시스템 구축 시 고려 사항
6.7 Shard 서버의 추가와 삭제
6.8 Chunk 크기 관리
6.9 샤딩 System의 문제점
6.10 ZONE Sharding
6.11 수동 샤딩

CHAPTER 7. Replica & ReplicaSets
7.1 Master & Slave 서버
7.1.1 MASTER & SLAVE 서버 환경 설정
7.1.2 MASTER & SLAVE 복구 방법
7.2 ReplicaSets
7.2.1 Priority(우선 순위)
7.2.2 멤버의 유형
7.2.3 Replica Sets 환경 설정
7.2.4 FailOver
7.2.5 replSetGetStatus 메쏘드
7.2.6 복제 서버의 추가와 삭제
7.2.7 OpLog의 크기 변경
7.2.8 리프리카셋 멤버의 동기화
7.2.9 dbHash 기능
7.2.10 Master-Slave를 ReplicaSets 서버로 변환
7.3 Change Stream
7.4 MongoClient API
7.4.1 Connection String Uri Format
7.5 물리적 설계
7.5.1 Collection 물리적 설계
7.5.2 MongoDB Storage Engine & HW 사양 결정

CHAPTER8 MongoDB 성능 튜닝
8.1 Performance Tuning Point
8.2 디자인 튜닝(Design Tuning)
8.3 문장 튜닝(Statement Tuning)
8.3.1 Profiling 시스템
8.3.2 Profiler 환경 분석 결과 및 상태 확인
8.3.3 Profile Collection의 재생성 및 관리
8.3.4 $planCacheStats 연산자
8.3.5 Profiling 분석 결과
8.3.6 Hint 함수와 Explain 함수
8.4 아키텍처 튜닝(Architecture Tuning)
8.5 인스턴스 튜닝(Instance Tuning)
8.6 하드웨어 튜닝(Hardware Tuning)
8.6.1 mongoperf 유틸리티

CHAPTER 9. MongoDB 백업/복구 & 유틸리티
9.1 백업과 복구 유형
9.2 MongoDump & MongoRestore
9.2.1 MongoDump
9.2.2 MongoRestore
9.3 BsonDump
9.4 MongoImport & MongoExport
9.4.1 MongoExport
9.4.2 MongoImport
9.5 CopyDatabase & CloneDatabase
9.5.1 CopyDatabase
9.5.2 Copy Remote Database
9.6 MongoStat & MongoTop
9.6.1 MongoStat 유틸리티
9.6.2 MongoTop 유틸리티
9.6.3 Web Monitoring
9.6.4 MongoDB Log 수집 & 분석
9.6.5 Log Level 설정 명령어
9.6.6 enableFreeMonitoring

INDEX
[교보문고에서 제공한 정보입니다.]