몽고DB 8.0 인 액션 : 벡터 검색과 RAG를 포함한 몽고DB 아틀라스 데이터 플랫폼 완벽 가이드 (제3판)

몽고DB 8.0 인 액션 : 벡터 검색과 RAG를 포함한 몽고DB 아틀라스 데이터 플랫폼 완벽 가이드 (제3판)

$40.00
저자

아레크보루츠키

저자:아레크보루츠키(ArekBorucki)
몽고DB챔피언이자몽고DB및몽고DB아틀라스공인관리자다.분산시스템,NoSQL데이터베이스,쿠버네티스분야의전문가로활동하고있다.

역자:김인범
RSQUARE의DATA기술팀팀장이자데이터엔지니어로,열정적인동료들과함께여러데이터과제를수행하고있다.SKAX클라우드컴퓨팅기술팀및클라우드아키텍트유닛을거쳐,CNCITY에너지AI솔루션팀에서데이터엔지니어및DBA로근무했다.다양한분야의데이터에관심이많으며글쓰기를좋아한다.

목차

옮긴이머리말xv
머리말xvii
이책에대하여xix
감사의글xxiii
표지에대하여xxv

PARTI최신웹애플리케이션을위한데이터베이스

CHAPTER1몽고DB의세계이해하기4
1.1도큐먼트지향데이터모델검토5
1.2데이터수평확장8
1.3몽고DB생태계탐색10
1.4TCMalloc버전향상13
1.5몽고DB쿼리API살펴보기13
요약14

CHAPTER2아틀라스와몽고DB데이터로시작하기16
2.1아틀라스CLI를사용하여첫번째아틀라스클러스터설정하기17
2.2샘플데이터셋적재하기22
2.3프로젝트접근목록에IP주소추가하기23
2.4사용자생성하기24
2.5몽고DB셸을통한몽고DB연결설정24
2.6데이터베이스,컬렉션,도큐먼트로데이터관리하기26
요약37

CHAPTER3몽고DB와통신하기39
3.1몽고DBWireProtocol을통한상호작용40
3.2mongosh살펴보기41
3.3몽고DBCompass사용해보기49
3.4몽고DB드라이버를사용하여연결하기52
3.5Node.js드라이버를사용하여연결하기52
3.6파이썬드라이버활용해보기56
3.7루비드라이버통합61
3.8Mongoid학습62
요약64

CHAPTER4CRUD작업실행하기65
4.1CRUD작업을위한mongosh연결66
4.2도큐먼트삽입66
4.3도큐먼트갱신69
4.4배열갱신73
4.5도큐먼트교체79
4.6도큐먼트조회80
4.7정규표현식검색수행하기87
4.8배열쿼리89
4.9임베디드/중첩된도큐먼트쿼리하기92
4.10정렬,건너뛰기,제한96
4.11도큐먼트삭제97
4.12bulkWrite()사용98
4.13커서이해하기100
4.14몽고DBStableAPI사용하기102
요약104

CHAPTER5몽고DB스키마설계105
5.1몽고DB데이터모델구성106
5.2임베딩vs.참조112
5.3스키마설계패턴이해하기115
5.4스키마유효성검사129
5.5몽고DB스키마안티패턴136
요약137

CHAPTER6집계파이프라인구축138
6.1집계프레임워크이해하기139
6.2컬렉션조인149
6.3$unwind로배열분해하기152
6.4축적자로작업하기155
6.5몽고DB아틀라스집계파이프라인빌더사용156
요약157

CHAPTER7쿼리성능을위한인덱싱159
7.1몽고DB쿼리플래너160
7.2지원되는인덱스유형165
7.3인덱스삭제188
7.4몽고DB인덱스속성189
7.5인덱스빌드이해194
7.6인덱스관리197
7.7인덱스를사용하지않아야하는경우203
요약204

CHAPTER8멀티도큐먼트ACID트랜잭션실행206
8.1WiredTiger스토리지엔진207
8.2단일도큐먼트트랜잭션209
8.3ACID정의209
8.4멀티도큐먼트트랜잭션210
8.5몽고DB트랜잭션고려사항222
요약223

CHAPTER9복제와샤딩의사용224
9.1복제를통한데이터고가용성보장225
9.2변경스트림이해236
9.3샤딩을통한데이터의수평적확장240
9.4몽고DB8.0샤드클러스터기능262
9.5데이터일관성과가용성관리266
요약272

PARTII몽고DB아틀라스데이터플랫폼

CHAPTER10DatabaseasaService깊이살펴보기278
10.1공유M0과Flex클러스터279
10.2전용클러스터283
10.3글로벌클러스터290
10.4워크로드격리를통한멀티리전구현291
10.5쿼리를위한사전정의된복제세트태그사용293
10.6아틀라스사용자정의쓰기보장수준이해296
요약297

CHAPTER11아틀라스검색을사용한전문검색수행299
11.1전문검색구현300
11.2아파치루씬의이해302
11.3아틀라스검색알아보기305
11.4아틀라스검색인덱스구축311
11.5아틀라스검색쿼리실행316
11.6아틀라스검색명령어학습338
11.7아틀라스검색플레이그라운드사용하기338
요약340

CHAPTER12시맨틱기술과아틀라스벡터검색학습하기343
12.1임베딩으로시작하기344
12.2아틀라스벡터검색과함께임베딩사용350
12.3아틀라스벡터검색쿼리실행하기356
12.4프로그래밍언어로벡터검색실행하기363
12.5아틀라스트리거로자동화된임베딩생성하기367
12.6벡터검색전용노드를통한워크로드격리372
12.7아틀라스벡터검색성능향상373
요약374

CHAPTER13아틀라스CLI를사용하여로컬에서AI애플리케이션개발하기376
13.1로컬아틀라스클러스터소개377
13.2아틀라스CLI로로컬에서아틀라스클러스터생성하기378
13.3로컬아틀라스클러스터관리하기383
13.4로컬아틀라스클러스터심층탐구하기388
13.5검색인덱스생성하기395
요약399

CHAPTER14검색증강생성AI챗봇구축하기401
14.1검색증강생성에대한통찰얻기402
14.2RAG생태계에랭체인임베딩하기404
14.3몽고DB아틀라스벡터검색RAG템플릿소개405
14.4AI챗봇시작하기406
14.5AI기반몽고DB챗봇생성하기408
요약427

CHAPTER15이벤트기반애플리케이션구축하기429
15.1이벤트기반기술이해하기430
15.2스트림프로세싱개념검토하기432
15.3아틀라스스트림프로세싱시작하기434
15.4아틀라스스트림프로세싱탐색하기436
15.5스트림프로세서집계파이프라인구조화하기440
15.6아틀라스스트림프로세싱마스터하기448
15.7스트림프로세싱흐름제어하기474
15.8아틀라스스트림프로세싱보안476
요약477

CHAPTER16아틀라스데이터페더레이션으로데이터프로세싱최적화하기480
16.1쿼리API를통한아마존S3및애저블롭스토리지데이터쿼리480
16.2아틀라스데이터페더레이션아키텍처학습하기482
16.3아틀라스페더레이티드데이터베이스인스턴스배포484
16.4아틀라스데이터페더레이션의제한사항484
16.5아틀라스데이터페더레이션의요금485
요약486

CHAPTER17아틀라스온라인아카이브로온라인아카이빙하기487
17.1데이터아카이빙하기488
17.2온라인아카이브초기화하기491
17.3온라인아카이브연결및쿼리하기495
17.4아카이브데이터복원하기498
요약499

CHAPTER18SQL을사용하여아틀라스쿼리하기501
18.1아틀라스SQL인터페이스소개502
18.2아틀라스SQL인터페이스에연결하기503
18.3SQL을사용하여몽고DB쿼리하기505
요약511

CHAPTER19차트,데이터베이스트리거,함수생성하기512
19.1아틀라스차트로데이터시각화하기513
19.2아틀라스애플리케이션서비스521
요약531

PARTIII몽고DB보안과운영

CHAPTER20아틀라스몽고DB보안기능이해하기535
20.1공유책임모델이해하기536
20.2인증관리539
20.3권한부여처리543
20.4아틀라스감사하기548
20.5아틀라스의데이터암호화551
20.6네트워크보안557
20.7심층적방어구현560
요약562

CHAPTER21아틀라스를통한운영우수성565
21.1백업전략및관행수립566
21.2아틀라스클러스터의성능검사575
21.3알림및로깅585
21.4아틀라스클러스터업그레이드589
요약590

찾아보기593



출판사 서평

몽고DB를단순한NoSQL데이터베이스로만알고있다면,이제다시배울때다

오늘날몽고DB8.0과몽고DB아틀라스는데이터저장,검색,분석,실시간처리,AI애플리케이션구축까지포괄하는데이터플랫폼으로확장되고있다.데이터모델링과샤딩,인덱싱같은전통적인데이터베이스역량은물론,전문검색과벡터검색,스트림처리,데이터페더레이션,온라인아카이브,생성형AI애플리케이션구축까지하나의플랫폼안에서가능하다.이책은이렇게확장된몽고DB를처음부터다시이해하게해주는실전적인안내서다.
1부에서는현대적인웹애플리케이션을위한데이터베이스로서의몽고DB의기초를다진다.도큐먼트지향데이터모델과아틀라스클러스터구성,몽고DB셸과드라이버사용법을살펴본뒤,CRUD작업,스키마설계,집계파이프라인,인덱싱,다중문서ACID트랜잭션,복제와샤딩을다룬다.명령어를나열하는데그치지않고,어떤데이터구조가효율적인지,어떤인덱스와샤딩전략이성능과확장성에영향을미치는지를예제로설명한다.
2부에서는이책의가장큰차별점인몽고DB아틀라스데이터플랫폼을본격적으로다룬다.아틀라스클러스터운영과아틀라스검색,벡터검색,로컬AI애플리케이션개발,RAG챗봇구축을통해생성형AI시대에몽고DB가어떤역할을할수있는지보여준다.또한아틀라스스트림프로세싱,데이터페더레이션,온라인아카이브,SQL인터페이스,차트,트리거등으로몽고DB가단순저장소를넘어애플리케이션데이터흐름전체를지원하는플랫폼으로확장되는과정을입체적으로설명한다.
마지막3부에서는보안과운영을다룬다.암호화,접근제어,백업과복구,성능모니터링,느린쿼리분석,운영우수성사례를통해실제서비스환경에서몽고DB아틀라스를안정적으로관리하는방법을익힌다.
몽고DB8.0의새로운기능을소개하는데서멈추지않고데이터모델링부터검색,AI,운영까지를하나의흐름으로연결한다는점이큰장점이다.최신기능과아틀라스중심의활용법을체계적으로안내하는책으로서,오늘날몽고DB를제대로다시배우고싶은개발자라면가장먼저읽어볼실전가이드북이다.

주요내용
몽고DB8.0의최신기능
몽고DB아틀라스데이터플랫폼활용법
데이터모델링과집계파이프라인설계
샤딩과복제를활용한확장성확보
전문검색과벡터검색구현
생성형AI와RAG애플리케이션구축
스트림프로세싱,데이터페더레이션,온라인아카이브활용
보안,백업,성능최적화및운영

책속에서

몽고DB는스케일아웃에최적화되어있으며,도큐먼트지향모델을사용하여여러서버에데이터를효율적으로분산시킨다.몽고DB의도큐먼트지향모델은각도큐먼트가자체완결적이라는특성으로인해데이터분산에적합하며,필요한모든정보가한곳에저장된다.관계형데이터베이스에서는흔한데이터간의복잡한조인의필요성이줄어든다는것을의미한다.결과적으로몽고DB는서버간에데이터를효율적으로관리하고할당할수있어,손쉬운확장이가능하다.(…)그림1.1은이러한스케일아웃접근방식을보여준다.이접근방식을구현하는프로세스를샤딩(sharding)이라고한다.샤딩은여러장비에데이터를분산시키며,데이터확장에대한관리를단순화하기위해자동화된데이터균형조정과부하분산이이루어진다.(8쪽)

여러도큐먼트를검색하는조회작업은쿼리와일치하는모든도큐먼트를동시에직접제공하지는않는다.쿼리가많은수의도큐먼트와일치할수있으므로이러한작업들은커서를생성한다.이커서는쿼리기준을충족하는도큐먼트를가리키고,배치로도큐먼트를검색하여메모리사용과네트워크대역폭을최소화하는데도움이된다.커서는다양하고세밀하게조정할수있으며,다양한시나리오에맞는다양한상호작용방법을지원한다.find()메서드는커서를직접반환한다.(…)커서를시작하려면일반적으로커서를반환하는db.routes.find()와같은쿼리를실행한다.커서는모든도큐먼트를즉시반환하지않고,배치로도큐먼트를가져올수있게한다.이커서를변수에저장할수있다.(100~101쪽)

몽고DB는WiredTiger를인수하여기본스토리지엔진으로통합했으며,이는몽고DB의성능과확장성을크게향상시켰다.WiredTiger는다중버전동시성제어(MVCC)를통해여러조회및쓰기작업을차단없이동시에수행함으로써경합을최소화한다.또한압축기능을지원하여필요한저장공간을줄이고I/O효율성을향상시킨다.그뿐아니라메모리내캐싱을사용하여빈번한디스크접근의필요성을줄여조회및쓰기작업속도를대폭향상시킨다.자유로운잠금메커니즘은특정데이터단위의작업을지원함으로써동시성을향상시키고병목현상을줄여주며,다음과같은여러스토리지아키텍처를지원한다.(207쪽)

아틀라스루씬을기반으로구축된아틀라스검색은,몽고DB데이터베이스와함께별도의검색시스템을실행할필요성을제거해준다.그림11.2에표시된것처럼아틀라스검색은루씬검색인덱스를데이터베이스와통합하여두시스템간의자동적인데이터동기화를보장한다.단일API를통해관리를간소화하여별도시스템의필요성을줄이고운영복잡성을낮춘다.전문검색은단일몽고DB쿼리API를통해접근할수있으며,몽고DB용과검색엔진용같은서로다른쿼리언어의필요성을제거한다.이러한통합된시스템아키텍처는데이터베이스와검색엔진구성요소의유지관리를단순화하면서데이터인덱싱과검색속도를향상시킨다.(305쪽)

스트림프로세싱플랫폼을애플리케이션스택에통합하면추가드라이버,도구,보안조치를필요로하는복잡성이높아진다.ApacheKafkaStreams,ksqlDB,ApacheFlink,ApacheStorm,AWSKinesis와같은기술은실시간데이터스트림을처리하기위한강력한설루션을제공하지만,이는API단편화와스키마경직성같은과제도동반한다.(…)아틀라스는더통합된설루션을제공한다.이벤트는자연스럽게유연한JSON과유사한도큐먼트구조에매핑되며강력한쿼리API를사용하여처리할수있는데,이둘은모두몽고DB설계의핵심이다.이는이벤트기반애플리케이션을처리하는더효율적이고통합된접근방식을제공한다.(434쪽)

아틀라스SQL은SQL쿼리를작성하기위해집계파이프라인스테이지구문과단순화된단축형구문이라는두가지구문옵션을제공한다.mongosh내에서두옵션을모두사용하여쿼리를작성할수있다.$sql집계파이프라인스테이지를사용하면컬렉션내의데이터에서SQL쿼리를처리하여아틀라스SQL쿼리를작성할수있다.(…)예제18.2와같이간결한db.sql메서드를사용하여아틀라스SQL문을직접입력할수있다.이구문은SQL문을직접전달하여더복잡한집계파이프라인구조를우회함으로써몽고DB내에서SQL쿼리실행을단순화한다.(505~507쪽)