도서 소개
효율적이고 안전한 고성능 애플리케이션을 만드는 데 필요한 몽고DB 기술. 몽고DB의 활용부터 고급 기능까지 자세히 다루는 궁극의 가이드다. 몽고DB 아키텍처, 개발자 도구, 데이터베이스 연결로 시작해, 집계 파이프라인과 다중 문서 ACID 트랜잭션을 비롯한 고급 쿼리를 살펴보고, 아틀라스 백터 검색 등 AI 애플리케이션에 유용한 최신 기능도 소개한다. 아틀라스 검색, RBAC, 감사, 암호화 등 고급 기술까지 깊이 있게 다루며, 몽고DB 소속 필진이 참여한 최초의 공식 도서다. 몽고DB 전문가인 역자가 한국어판 부록으로 8.0 내용을 추가했다.
출판사 리뷰
기다리고 기다리던 최고+최신 몽고DB 가이드북 몽고DB는 개발자 친화적인 방향으로 꾸준히 발전했음에도 한동안 국내에 관련 서적이 출간되지 않았다. 이 책의 원서는 몽고DB에 소속된 필진이 직접 집필한 최초의 공식 몽고DB 도서다. 원서는 출간 당시 최신 버전인 7.0을 기준으로 집필되었으나 이후 8.0 버전이 나왔고, 이에 8.0 내용을 주석 및 부록으로 보완해서 이번에 제이펍에서 출간한 한국어판 번역서가 바로 《마스터링 몽고DB 7.0(제4판)》이다.
개발자로서 몽고DB를 활용하기 위해 알아야 할 아키텍처, 개발자 도구 등 기초부터 시작한다. CRUD 쿼리, 스키마 설계와 데이터 모델링, 고급 쿼리, 집계 파이프라인, 다중 문서 ACID 트랜잭션, 인덱스 최적화 등 실무 친화적인 주제를 실습 예제와 함께 설명한다.
다음으로 몽고DB를 DBaaS로서 최대한 활용할 수 있게 하는 아틀라스 개발자 데이터 플랫폼 및 관련 제품군을 살펴본다. AI 애플리케이션에 유용한 아틀라스 벡터 검색 등 최신 제품의 활용법을 다룬다는 점이 돋보인다. 이어서 모니터링과 백업, 아틀라스 검색, 서드파티 애플리케이션과의 통합 방법을 살펴보고, RBAC 등 보안, 감사, 암호화까지 좀 더 고급 주제까지 다룬다.
국내에 출간된 모든 몽고DB 도서 중에서 다루는 범위나 전문성 면에서 최고인 책이라고 할 수 있다. 이것은 과언이 아니라 팩트다.
주요 내용- 데이터 인사이트를 얻기 위한 고급 쿼리 실행
- 집계 파이프라인의 강력한 기능을 활용한 데이터 변환
- 다중 문서 ACID 트랜잭션으로 데이터 무결성 보장하기
- 전략적 인덱싱 기법을 사용한 쿼리 성능 최적화
- 몽고DB 아틀라스를 활용한 모니터링 및 백업
- 아틀라스 검색으로 강력한 검색 기능 사용
- 보안을 위한 RBAC, 사용자 관리, 데이터 암호화
- 투명성과 책임성을 보장하는 감사 프랙티스

10년 전만 해도 몽고DB는 틈새시장에 불과했습니다. 선도적인 개발자들에게만 매력적인 젊은 데이터베이스였죠. 하지만 현재, 몽고DB는 수많은 다양한 산업에서 사용되고 있으며, 그 사용 사례는 모든 종류의 상황과 저장된 데이터 유형에 걸쳐 있습니다. 전 세계에서 가장 큰 은행, 자동차 제조업체, 정부 기관, 게임 회사들이 몽고DB를 프로덕션 애플리케이션에 사용하고 있습니다. 몽고DB를 사용하는 가장 유명한 기업으로는 코인베이스, 에픽게임즈, 모건 스탠리, 어도비, 테슬라, 캔바, 울타 뷰티, 캐세이퍼시픽, 동화, 보다폰 등이 있습니다.
Mongoid는 몽고DB를 위한 대표적인 ODM으로, 개발자들이 루비 온 레일즈 프레임워크에서 몽고DB 데이터베이스를 직관적이고 효율적으로 다룰 수 있게 해줍니다. 저수준 드라이버가 높은 유연성을 제공하는 반면, Mongoid는 레일즈의 명명 규칙과 잘 통합된 고수준 추상화를 제공하여 개발 생산성을 향상합니다. 이러한 원활한 통합을 통해 스키마 정의, 쿼리 작성, 데이터 모델링 등의 작업이 간소화되어, 개발자는 데이터베이스 구현보다 애플리케이션 로직에 집중할 수 있습니다. ORM과 마찬가지로 ODM은 모델과 데이터베이스 간의 차이를 최소화합니다.
작가 소개
지은이 : 마르코 알렉센드리치
분석가이자 전직 과학자로, 20년 이상 독학으로 프리랜서 웹 개발을 해왔다. 백엔드와 프런트엔드 개발에 큰 관심을 두고 있으며, 지난 15년간 다양한 웹 및 데이터 분석 프로젝트에 파이썬과 자바스크립트를 사용하여 몽고DB를 적극 활용해왔다. 저서로 《Full Stack FastAPI, React, and MongoDB》(Packt, 2024)가 있다.
지은이 : 아레크 보루츠키
몽고DB 챔피언이자 공인 데이터베이스 관리자로, 2016년부터 몽고DB 기술을 활용해왔다. 수석 SRE 데이터베이스 엔지니어로 일하며, 몽고DB, 일래스틱서치, 포스트그레SQL, 카프카, 쿠버네티스, 테라폼, AWS, GCP 등 다양한 기술을 다룬다. 아마데우스(Amadeus), 도이치방크, IBM, 노키아, 비머리(Beamery) 등 유명 기업들과 함께 일한 풍부한 경험이 있고, 현재는 공인 쿠버네티스 관리자이자 개발자로서 국제 콘퍼런스에서 활발히 강연하고 있으며, 몽고DB 어소시에이트 DBA 시험 문제를 공동 집필하기도 했다.
지은이 : 레안드루 도밍게스
몽고DB 커뮤니티 챔피언이자 마이크로소프트 데이터 플랫폼 MVP 출신이다. NoSQL 데이터베이스, 특히 몽고DB 전문가로서 여러 기사를 썼고 각종 이벤트와 콘퍼런스의 연사이자 주최자로 활동하고 있다. 브라질의 대학교에서 교수로 재직하면서 많은 개발자와 관리자들의 멘토이자 영감의 원천이 되고 있다.
지은이 : 말라크 아부 함마드
체인 리액션(Chain Reaction)에서 소프트웨어 엔지니어링 매니저로 일하고 있으며, 몽고DB 분야에서 10년의 전문성을 갖추고 있다. 몽고DB뿐 아니라 필수 웹 앱 기술 분야에서도 독보적인 역량을 쌓아왔으며, 다양한 온오프라인 워크숍을 진행할 뿐만 아니라 몽고DB 챔피언이자 몽고DB 아랍어 커뮤니티의 창립 구성원으로 활동하고 있다.
지은이 : 엘리 한누시
시니어 소프트웨어 엔지니어이자 디지털 전환 전문가. 기술 산업의 원동력으로서 강력하고 확장 가능하며 영향력 있는 솔루션을 제공한 검증된 실적을 가지고 있다. 또한 스타트업 창업자로서 광범위한 엔지니어링 배경과 전략적 혁신 능력을 결합해 디지털 시대에 기업들이 운영되는 방식을 재정의하고 있다. 몽고DB 챔피언일 뿐만 아니라 레바논에서 몽고DB, 구글, CNCF 커뮤니티를 이끌고 있으며, 복잡한 개념을 쉽게 설명하고 새로운 세대의 기술 애호가들에게 영감을 줌으로써, 기술 전문가를 꿈꾸는 이들을 적극 지원하고 있다.
지은이 : 라제시 나이어
인도 케랄라 출신의 소프트웨어 전문가로, 다양한 다국적 기업에서 12년 이상의 경력을 쌓았다. 오픈에지(OpenEdge)와 MySQL 등 여러 RDBMS 기술의 데이터베이스 관리자로 경력을 시작했고, 몽고DB 관리자로서 몽고DB에서 운영되는 핵심 애플리케이션을 위한 대규모 데이터셋을 관리한 바 있다. AWS, 자바, 카프카, MySQL, 오픈에지, 셸 스크립팅, 리눅스 관리 등 다양한 기술을 다뤄왔으며, 현재는 네덜란드 암스테르담에 거주하며 시니어 소프트웨어 엔지니어로 일하고 있다.
지은이 : 레이철 파머
몽고DB의 개발자 데이터베이스 경험 및 개발자 교육 부문 제품 리더로, 드라이버 클라이언트 라이브러리, 문서, 프레임워크 통합, 몽고DB 대학을 총괄하고 있으며 자바, PHP, 러스트, 파이썬, Node.js, 루비로 몽고DB를 위한 샘플 애플리케이션을 개발했다. 2013년 몽고DB에 합류했으며, 이전에는 기술 서비스 엔지니어링 팀의 디렉터로 일하면서 몽고DB 아틀라스에 관한 지원과 CloudOps를 제공하는 팀을 구성하고 관리했다.
목차
지은이·옮긴이 소개 xiv
기술 감수자 소개 xvii
옮긴이 머리말 xix
베타리더 후기 xxi
저자의 말 xxiv
이 책에 대하여 xxvi
CHAPTER 1 몽고DB 소개 1
1.1 누가 몽고DB를 사용하는가? 1
1.2 개발자가 몽고DB를 선호하는 이유 2
1.3 몽고DB 데이터베이스의 내재된 복잡성의 효율성 4
1.4 요약 6
CHAPTER 2 몽고DB 아키텍처 7
2.1 복제와 샤딩 8
2.2 복제 8
2.3 샤딩 17
2.4 몽고DB 7.0의 새로운 샤딩 클러스터 기능 32
2.5 요약 33
CHAPTER 3 개발자 도구 35
3.1 기술 요구사항 36
3.2 개발 도구 소개 36
3.3 몽고DB 셸 38
3.4 몽고DB CLI 44
3.5 몽고DB Compass 48
3.6 몽고DB for VS Code 53
3.7 요약 55
CHAPTER 4 몽고DB 연결 57
4.1 연결 방법 57
4.2 요약 72
CHAPTER 5 CRUD 작업과 기본 쿼리 74
5.1 기술 요구사항 74
5.2 몽고DB 기본 데이터 작업 75
5.3 루비 드라이버를 사용한 CRUD 처리 85
5.4 파이썬 드라이버를 사용한 CRUD 처리 94
5.5 정규 표현식 102
5.6 관리 기능 104
5.7 몽고DB에 관한 보안 액세스 107
5.8 몽고DB Stable API 110
5.9 요약 112
CHAPTER 6 스키마 설계와 데이터 모델링 113
6.1 관계형 데이터베이스를 위한 스키마 설계 114
6.2 몽고DB를 위한 스키마 설계 116
6.3 몽고DB의 데이터 모델링 117
6.4 몽고DB 데이터베이스 모델링: 설계 원칙과 권장 사례 122
6.5 설계 패턴과 스키마 설계 122
6.6 요약 129
CHAPTER 7 몽고DB 고급 쿼리 130
7.1 집계 프레임워크 소개 130
7.2 몽고DB의 집계가 제공하는 이점 132
7.3 집계 스테이지 133
7.4 쿼리 기술 147
7.5 인덱스와 쿼리 최적화 164
7.6 몽고DB 위치 기반 데이터 처리 169
7.7 요약 172
CHAPTER 8 집계 173
8.1 기술 요구사항 174
8.2 몽고DB 집계 프레임워크 174
8.3 기본 집계 연산자 179
8.4 모범 사례 192
8.5 요약 194
CHAPTER 9 다중 문서 ACID 트랜잭션 195
9.1 트랜잭션이 유용한 이유는 무엇인가? 196
9.2 ACID 속성 196
9.3 ACID의 몽고DB 구현 199
9.4 모범 사례 212
9.5 요약 213
CHAPTER 10 인덱스 최적화 214
10.1 인덱스 소개 215
10.2 인덱스 유형 220
10.3 인덱스 최적화 모범 사례 240
10.4 요약 240
CHAPTER 11 몽고DB 아틀라스 242
11.1 데이터베이스 서비스로서의 몽고DB 아틀라스 243
11.2 아틀라스 개발자 데이터 플랫폼 255
11.3 아틀라스 벡터 검색과 AI 애플리케이션에서의 역할 255
11.4 아틀라스 애플리케이션 서비스 259
11.5 아틀라스 데이터 API 262
11.6 아틀라스 데이터 레이크 265
11.7 아틀라스 데이터 페더레이션 266
11.8 아틀라스 스트림 프로세싱 269
11.9 아틀라스 SQL 인터페이스 272
11.10 몽고DB 아틀라스 차트 274
11.11 운영 통합: 아틀라스 쿠버네티스 오퍼레이터 277
11.12 아틀라스 CLI 280
11.13 요약 282
CHAPTER 12 몽고DB 모니터링과 백업 283
12.1 몽고DB 모니터링 283
12.2 무엇을 모니터링해야 하는가? 285
12.3 WiredTiger 메모리 사용량 모니터링 291
12.4 페이지 폴트 추적 291
12.5 작업 세트 계산 293
12.6 몽고DB 리포팅 도구 개요 294
12.7 호스팅 모니터링 도구 개요 295
12.8 몽고DB 백업 방법 297
12.9 몽고DB 모니터링과 백업의 일반적인 실수와 함정 302
12.10 요약 304
CHAPTER 13 아틀라스 검색 305
13.1 몽고DB 아틀라스 검색 306
13.2 아틀라스 검색 인덱스의 기술적 구조와 작동 방식 309
13.3 아파치 루씬 328
13.4 요약 331
CHAPTER 14 몽고DB와 애플리케이션 통합 333
14.1 기술 요구사항 333
14.2 몽고DB에서 애플리케이션 통합 334
14.3 몽고DB 쿠버네티스 오퍼레이터 336
14.4 테라폼과 몽고DB 통합 340
14.5 몽고DB와 함께 버셀 사용 344
14.6 데이터독과 몽고DB 통합하기 348
14.7 프로메테우스와 몽고DB 통합하기 353
14.8 웹훅과 몽고DB 통합하기 357
14.9 페이저듀티 통합 361
14.10 요약 365
CHAPTER 15 보안 367
15.1 인증 방법 368
15.2 역할 기반 접근 제어(RBAC) 385
15.3 요약 396
CHAPTER 16 감사 397
16.1 몽고DB 감사와 로깅 398
16.2 감사 가능한 이벤트 유형 401
16.3 몽고DB에서 감사 활성화 402
16.4 사례 연구: 규정 준수에서 감사의 역할 410
16.5 몽고DB의 감사 문제 해결 411
16.6 요약 413
CHAPTER 17 암호화 414
17.1 암호화 유형 415
17.2 전송 중 암호화 416
17.3 저장 시 암호화 421
17.4 클라이언트 측 암호화 426
17.5 요약 432
APPENDIX A 몽고DB 8.0의 새로운 기능과 개선 사항 433
A.1 지원 플랫폼과 운영체제 433
A.2 모니터링과 성능 분석 기능 향상 433
A.3 보안 기능 강화 434
A.4 샤딩 기능의 유연성 강화 434
A.5 복제 성능 개선 435
A.6 시스템 관리 기능 개선 435
A.7 성능 최적화 436
A.8 업그레이드 시 주의 사항 437
APPENDIX B 몽고DB 8.0 호환성 안내 및 주요 변경 사항 438
B.1 쿼리 동작의 새로운 변화 438
B.2 더 이상 사용되지 않는 기능들 439
B.3 성능 개선을 위한 주요 변경 사항 439
B.4 추가 개선 사항 440
B.5 마무리 440
찾아보기 441