MongoDB in Action - 빅 데이터 시대 최고의 NoSQL 데이터베이스

|




MongoDB를 만든 10gen의 소프트웨어 엔지니어인 Kyle Banker가 쓴 책이어서 그런지 정말 최고입니다. 

몽고디비를 처음 시작하는 개발자라면 반드시 가지고 참고해야 할 책이 아닐까 합니다. 


저자는 머리말에서 다음과 같이 이야기합니다. 

코멘트를 남기고 트윗을 날리는 것부터 검색과 정렬에 이르기까지 우리의 디지털 상호작용은 본질적으로 데이터베이스와의 상호작용이다. 


솔직직히 우리가 웹 기반의 프로그래밍이라고 하는 것이 

결국은 DB에 데이터를 저장하고 추출하는 것이 대부분이라는 점을 생각하면 될 것 같습니다. 


이 책은 MongoDB를 설명하기 위해 기본 개념부터 이야기를 많이 합니다. 

예를 들면, MongoDB의 인덱스 설계 구조를 이야기 하기 위해 인덱스에 대한 이론적 설명부터 합니다. 

책을 읽고 나면 간단한 데이터베이스 개론도 한 권 읽은 것과 같은 느낌이 듭니다 


또한 MongoDB의 핵심인 도큐먼트 데이터 모델, 샤딩 등에 대해서도 자세히 설명하고 있구요. 

기존 DB 설계와 비교한 설계 패턴, Blob 데이터 처리와 관려된 내용들도 부록으로 알차게 다뤄주고 있습니다. 



그럼 각 장별로 핵심 내용들을 정리해 보죠. 


1장: 현대 웹을 위한 도큐먼트 데이터베이스

MongoDB의 역사와 개요에 대해서 잘 설명하고 있습니다. 

제 블로그에도 MongoDB에 대한 간단한 정리를 통해 요약해 두었습니다. 


2장: 자바스크립트 셀을 통한 MongoDB

셀을 통해 MongoDB를 제어하는 방법을 설명하고 있습니다. 

CRUD 뿐만 아니라 인덱스까지 테스트 해볼 수 있도록 구성되어 있네요. 

데이터베이스의 기본인 CRUD에 대해서는 MongoDB 설치 및 기본적인 명령어에 정리했습니다. 


3장: MongoDB를 이용한 프로그래밍

프로그래밍에서 MongoDB와 연동하기 위한 부분을 설명하고 있습니다. 

커서의 사용법 뿐만 아니라 드라이버의 작동원리나 MongoDB의 바이너리 포맷인 BSON에 대해서도 이야기하고 있네요. 

루비를 이용한 간단한 트위터 연동 프로그램을 예제로 다루고 있습니다. 


4장: 도큐먼트 지향 데이터

기존의 RDB에 익숙한 사람들에게는 생소한 도큐먼트 데이터 모델의 설계에 대해서 이야기 합니다. 

전자상거래 데이터 모델을 설계하면서 데이터베이스, 컬렉션, 도큐먼트에 대해 잘 설명하고 있습니다. 


최적의 스키마 설계는 사용하는 데이터베이스에 대한 깊은 지식과 애플리케이션의 요구사항에 대한 현명한 판단, 그리고 오랜 경험으로부터 나온다. 


5장: 쿼리와 집계

4장에서 설계한 전자상거래 데이터 모델에 각종 질의를 하는 방법을 다루고 있습니다. 

MongoDB의 질의어와 더불어 맵-리듀스를 통한 집계까지 설명하고 있네요. 


6장: 업데이트, 원자적 연산, 삭제

fingAndModify()를 잘 활용한 업데이트로 기존 RDB의 트랜잭션 처럼 구축할 수 있다는 것인데요. 

5장이 질의어에 대해 다룬다면, 6장은 업데이트와 삭제를 중심으로 다루고 있다고 보면 됩니다. 


7장: 인덱싱과 쿼리 최적화

인덱싱에 대한 이론부터 시작해서 MonoDB에서 인덱스를 어떻게 다루는지까지 광범위하게 설명되어 있습니다.

또한 explain()으로 쿼리 결과를 분석하면서 최적화 하는 부분도 다루고 있네요. 


8장: 복제

복제셋과 마스터-슬레이브 복제의 두가지 방식을 설명하고 있는데요. 

주로 복제셋에 대해서 자세히 다루고 있으며 장애조치 등에 대해서 이야기 하고 있습니다. 


9장: 샤딩

샤딩이란 것을 MongoDB에서 처음 들었는데요. 

샤딩의 개념에서 부터 실제 구축하는 예제와 관리 및 장애조치까지 잘 설명하고 있습니다. 

특히 샤드 키 선택을 위한 전략 등 실질적으로 필요한 내용이 포함되어 있습니다. 


10장: 배포와 관리 

실제 MongoDB를 배포할 때, 그리고 유지보수 할 때, 고려해야 할 사항들이 나오구요. 

저자가 이야기하는 성능 문제 해결도 다루고 있으니 실제 MonogDB를 활용할 때 참고할 만 할 듯합니다.


부록

부록에서는 MongoDB 설치와 설계 패턴, 바이너리 데이터 저장 방법, 각종 프로그래밍 언어에서 MongoDB 연동, 공간 인덱스에 대한 개념들을 다루고 있습니다. 

부록도 버릴 것 없이 모두 읽어보면 도움이 될 것 같습니다. 





Trackback 0 And Comment 0