장바구니 담기 close

장바구니에 상품을 담았습니다.

Real MongoDB

Real MongoDB 대용량 데이터 처리를 위한

  • 이성욱
  • |
  • 위키북스
  • |
  • 2018-01-30 출간
  • |
  • 920페이지
  • |
  • 188 X 240 mm
  • |
  • ISBN 9791158390921
판매가

48,000원

즉시할인가

43,200

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
43,200

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

목차

▣ 01장: MongoDB
1.1 데이터베이스 트렌드
1.2 MongoDB의 라이선스
1.3 MongoDB 버전
__1.3.1 setFeatureCompatibilityVersion 옵션
1.4 MongoDB vs. RDBMS(MySQL)
1.5 MongoDB vs. NoSQL(HBase)
1.6 MongoDB 아키텍처
1.7 MongoDB 배포 형태
__1.7.1 단일 노드(Standalone)
__1.7.2 단일 레플리카 셋(Single Replica-set)
__1.7.3 샤딩된 클러스터(Sharded Cluster)

▣ 02장: 스토리지 엔진
2.1 플러그인 스토리지 엔진
__2.1.1 MongoDB 스토리지 엔진
__2.1.2 스토리지 엔진 혼합 사용
2.2 MMAPv1 스토리지 엔진
__2.2.1 MMAPv1 스토리지 엔진 설정
__2.2.2 데이터 파일 구조
__2.2.3 MongoDB 서버 상태 확인
__2.2.4 운영체제 캐시
__2.2.5 데이터 파일 프레그멘테이션
2.3 WiredTiger 스토리지 엔진
__2.3.1 WiredTiger 스토리지 엔진 설정
__2.3.2 WiredTiger 스토리지의 저장 방식
__2.3.3 데이터 파일 구조
__2.3.4 WiredTiger의 내부 작동 방식
__2.3.5 공유 캐시
__2.3.6 캐시 이빅션(Cache Eviction)
__2.3.7 체크포인트(Checkpoint)
__2.3.8 MVCC(Multi Version Concurrency Control)
__2.3.9 데이터 블록(페이지)
__2.3.10 운영체제 캐시(페이지 캐시)
__2.3.11 압축
__2.3.12 암호화
2.4 메모리 스토리지 엔진
__2.4.1 Percona MongoDB의 메모리 스토리지 엔진 설정
__2.4.2 Percona 메모리 스토리지 엔진의 특성
2.5 기타 스토리지 엔진

▣ 03장: 복제
3.1 복제란?
__3.1.1 컨센서스 알고리즘(Consensus Algorithm)
__3.1.2 복제의 목적
3.2 레플리카 셋 멤버
__3.2.1 프라이머리(Primary)
__3.2.2 세컨드리(Secondary)
__3.2.3 아비터(Arbiter)
3.3 프라이머리 선출(Primary Election)
__3.3.1 프라이머리 텀(Primary Term)
__3.3.2 프라이머리 스텝 다운(Primary Step Down)
__3.3.3 프라이머리 선출 시나리오
__3.3.4 프라이머리 선출 시 정족수(Quorum)의 의미
__3.3.5 롤백(Rollback)
__3.3.6 롤백(Rollback) 데이터 재처리
3.4 복제 아키텍처
__3.4.1 복제 로그(OpLog) 구조
__3.4.2 local 데이터베이스
__3.4.3 초기 동기화(Initial Sync)
__3.4.4 실시간 복제(Replication)
3.5 복제 로그(Operation Log) 설정
__3.5.1 OpLog 컬렉션 크기 설정
__3.5.2 복제 동기화 상태 확인
__3.5.3 OpLog 컬렉션과 백업
3.6 레플리카 셋 설정
__3.6.1 하트비트(Heartbeat) 메시지 주기와 프라이머리 선출 타임아웃
__3.6.2 레플리카 셋 멤버 설정
3.7 레플리카 셋 배포
__3.7.1 레플리카 셋 멤버의 수
__3.7.2 DR(Disaster Recovery) 구성
__3.7.3 레플리카 셋 배포 시 주의 사항

▣ 04장: 샤딩
4.1 샤딩(Sharding)이란?
__4.1.1 샤딩의 필요성
__4.1.2 샤딩의 종류
4.2 MongoDB 샤딩 아키텍처
__4.2.1 샤드 클러스터(Sharded Cluster) 컴포넌트
__4.2.2 샤드 클러스터의 쿼리 수행 절차(라우터와 컨피그 서버의 통신)
__4.2.3 컨피그 서버
__4.2.4 컨피그 서버의 복제 방식
__4.2.5 컨피그 서버 가용성과 쿼리 실행
__4.2.6 라우터(mongos)
__4.2.7 라우터의 쿼리 분산
__4.2.8 라우터 배포
__4.2.9 컨넥션 풀 관리
__4.2.10 백업 복구 시 주의 사항
4.3 샤딩 알고리즘
__4.3.1 청크(Chunk)
__4.3.2 레인지 샤딩(Range Sharding)
__4.3.3 해시 샤딩(Hashed Sharding)
__4.3.4 지역 기반 샤딩(Zone Sharding)
__4.3.5 샤드 키
4.4 프라이머리 샤드
4.5 청크 밸런싱
__4.5.1 샤드 클러스터 밸런서
__4.5.2 청크 스플릿(Chunk split)
__4.5.3 청크 머지(Chunk merge)
__4.5.4 청크 이동(Chunk migration)
__4.5.5 청크 사이즈 변경
__4.5.6 점보 청크(Jumbo Chunk)
__4.5.7 고아 도큐먼트(Orphaned document) 삭제
4.6 샤딩으로 인한 제약
__4.6.1 트랜잭션
__4.6.2 샤딩과 유니크 인덱스
__4.6.3 조인과 그래프 쿼리
__4.6.4 기존 컬렉션에 샤딩 적용

▣ 05장: 인덱스
5.1 디스크 읽기 방식
__5.1.1 디스크 저장 매체
__5.1.2 랜덤 I/O와 순차 I/O
5.2 인덱스란?
5.3 MongoDB 인덱스의 개요
__5.3.1 클러스터링 인덱스
__5.3.2 인덱스 내부
__5.3.3 로컬 인덱스(Local Index)
__5.3.4 인덱스 키 엔트리 자료 구조
5.4 B-Tree 인덱스
__5.4.1 구조 및 특성
__5.4.2 B-Tree 인덱스 키 추가 및 삭제
__5.4.3 B-Tree 인덱스 사용에 영향을 미치는 요소
__5.4.4 B-Tree 인덱스를 통한 데이터 읽기
__5.4.5 컴파운드 인덱스(Compound Index)
__5.4.6 B-Tree 인덱스의 정렬 및 스캔 방향
__5.4.7 B-Tree 인덱스의 가용성과 효율성
5.5 해시(Hash) 인덱스
__5.5.1 해시 인덱스의 구조 및 특성
__5.5.2 해시 인덱스의 가용성 및 효율성
__5.5.3 MongoDB 해시 인덱스의 구조 및 특성
__5.5.4 MongoDB 해시 인덱스의 제한 사항
5.6 멀티 키 인덱스
__5.6.1 멀티 키 인덱스의 주의 사항
__5.6.2 멀티 키 인덱스의 성능
__5.6.3 멀티 키 인덱스의 제한 사항
5.7 전문 검색 인덱스
__5.7.1 형태소 분석 알고리즘
__5.7.2 N-Gram 알고리즘
__5.7.3 형태소 분석과 N-Gram의 장단점
__5.7.4 전문 검색 인덱스의 활용
__5.7.5 부정 비교와 문장 검색
__5.7.6 MongoDB 전문 검색 인덱스의 버전 호환성
__5.7.7 전문 검색 인덱스의 제약 사항
5.8 공간 검색 인덱스
__5.8.1 GeoHash 알고리즘
__5.8.2 S2 Geometry 알고리즘
__5.8.3 MongoDB의 공간 인덱스
__5.8.4 MongoDB의 컴파운드 공간 인덱스
5.9 인덱스 속성
__5.9.1 프라이머리 키와 세컨드리 인덱스
__5.9.2 유니크 인덱스
__5.9.3 Partial 인덱스와 Sparse 인덱스
__5.9.4 TTL 인덱스
__5.9.5 인덱스 콜레이션(대소문자 구분 설정)
__5.9.6 외래 키

▣ 06장: 잠금과 트랜잭션
6.1 잠금
__6.1.1 MongoDB 엔진의 잠금
__6.1.2 WiredTiger 스토리지 엔진의 잠금
__6.1.3 잠금 Yield
__6.1.4 잠금 진단
6.2 트랜잭션
__6.2.1 쓰기 충돌(Write Conflict)
__6.2.2 단일 도큐먼트 트랜잭션(Single Document transaction)
__6.2.3 문장의 트랜잭션(Statement transaction) 처리
6.3 격리 수준
__6.3.1 READ-COMMITTED
__6.3.2 SNAPSHOT(REPEATABLE-READ)
__6.3.3 MongoDB 서버의 격리 수준
__6.3.4 MongoDB 서버의 격리 수준과 정렬
6.4 Read & Write Concern과 Read Preference
__6.4.1 Write Concern
__6.4.2 Read Concern
__6.4.3 Read Preference
__6.4.4 maxStalenessSeconds 설정
__6.4.5 샤딩 환경의 중복 도큐먼트 처리

▣ 07장: 데이터 모델링
7.1 데이터베이스와 컬렉션
__7.1.1 네임스페이스
__7.1.2 데이터베이스
__7.1.3 컬렉션
__7.1.4 뷰(View)
__7.1.5 BSON 도큐먼트
__7.1.6 제한 사항
7.2 데이터 타입
__7.2.1 데이터 타입 비교
__7.2.2 필드 값의 비교 및 정렬
__7.2.3 문자셋과 콜레이션
__7.2.4 MongoDB 확장 JSON(Extended JSON)
7.3 모델링 고려 사항
__7.3.1 도큐먼트의 크기
__7.3.2 정규화와 역정규화(Document Referencing vs. Embedding)
__7.3.3 서브 도큐먼트(Sub Document)
__7.3.4 배열(Array)
__7.3.5 필드 이름
__7.3.6 프레그멘테이션(Fragmentation)과 패딩(Padding)
__7.3.7 도큐먼트 유효성 체크
__7.3.8 조인

▣ 08장: 쿼리 개발과 튜닝
8.1 기본 CRUD 쿼리
__8.1.1 쿼리 작성
8.2 확장 검색 쿼리
__8.2.1 맵리듀스(Map Reduce)
__8.2.2 Aggregation
__8.2.3 Fulltext Search
__8.2.4 공간 검색
8.3 스키마 변경(DDL)
__8.3.1 데이터베이스 관리
__8.3.2 컬렉션 관리
__8.3.3 인덱스 관리

▣ 09장: 실행 계획 및 쿼리 최적화
9.1 실행 계획
__9.1.1 쿼리의 처리 과정
__9.1.2 실행 계획 수립
__9.1.3 옵티마이저 옵션
__9.1.4 플랜 캐시
__9.1.5 실행 계획 스테이지
__9.1.6 쿼리 실행 계획 해석
9.2 쿼리 최적화
__9.2.1 실행 계획의 쿼리 튜닝 포인트
__9.2.2 슬로우 쿼리 로그 분석 및 튜닝
__9.2.3 쿼리 프로파일링
__9.2.4 인덱스 힌트

▣ 10장: 보안
10.1 인증(Authentication)
__10.1.1 내부 인증
__10.1.2 사용자 인증
10.2 권한(Authorization)
__10.2.1 액션(Action)
__10.2.2 내장(Built-in)된 역할(Role)
__10.2.3 사용자 정의 역할(Role)
10.3 암호화(Encryption)
__10.3.1 데이터 암호화 방식
__10.3.2 MongoDB TDE 구현

▣ 부록: 백업 및 복구
A.1 mongodump와 mongorestore를 이용한 논리 백업 및 복구
__A.1.1 백업
__A.1.2 복구
A.2 물리 백업 및 복구
__A.2.1 셧다운 상태의 백업
__A.2.2 복제 중지 상태의 백업
__A.2.3 파일시스템 스냅샷 백업
__A.2.4 Percona 온라인 백업
__A.2.5 물리 백업 복구
A.3 PIT(Point-In-Time) 복구

도서소개

MongoDB의 "Know-How"가 아닌 "Know-Why"를 전달해 드립니다!

MongoDB 메뉴얼은 아주 간결하고 기본적인 내용에 충실하게 작성되어 있다. 하지만 문법이나 명령만으로는 DBMS를 사용할 수 없다. 내부 작동 방식을 모르면 수많은 시행착오를 거치게 되며, 이런 시행착오는 결국 서비스 품질 저하로 연결될 것이다. 이 책에서는 MongoDB 서버를 사용하는 데 꼭 필요한 아키텍처와 함께 MongoDB 내부(Internal)에 대해 자세히 설명하고 있다. 또한 다양한 시행 착오를 줄이기 위한 주의 사항들에 대해서도 설명한다.

이 책은 MongoDB 서버(특히 MongoDB 1.x와 2.x 버전)에 실망했던 독자들에게 다시 한 번 MongoDB 서버의 가능성을 보여주고, 새로운 DBMS 솔루션을 찾고 있는 독자들에게 대안을 제시해 줄 것이라 생각한다.

이 책에서 다루는 내용

* 데이터베이스 트렌드
* MongoDB 복제와 샤딩
* WiredTiger 스토리지 엔진의 내부 구조와 작동 방식
* MongoDB 인덱스와 쿼리 튜닝
* 한글 전문 검색과 위치 기반 검색
* MongoDB의 잠금과 트랜잭션
* 운영을 위한 보안과 백업 

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.