대용량 데이터 베이스용 NoSQL의 진수를 만나라!웹 어플리케이션을 통해 수집된 대용량 데이터를 MongoDB로 어떻게 관리할 수 있을까? MongoDB 메인 커미터가 직접 소개하는 문서 지향 데이터베이스의 다양한 장점을 배우다 보면, 수평적인 무한 확장을 제공하는 MongoDB가 "왜 신뢰성 있고", "왜 고성능 데이터베이스로 유명한지"를 알게 될 것이다.
어떤 독자를 위한 책인가?
- 클라우드 컴퓨팅 분야의 학자, 개발자, 기술 기획자
- 데이터 마이닝 등 데이터 분석 및 알고리즘 학자, 개발자
쉽고 친절하게 핵심과 실전 사례를 제시한다!이 책은 MongoDB 오픈 소스를 만들고 제공하는 10gen 엔지니어들에 의해 집필되었으며 데이터베이스 개발자를 위한 지침, 시스템 관리자를 위한 고급 구성, 기타 프로젝트 구성원을 위한 개념에 대한 개요 및 실전 사례를 제공한다.
- 관계형 데이터베이스의 레코드보다 쉬운 JSON 스타일 문서
- 문서 지향 데이터베이스 실전 활용 사례
- 스키마가 없이 문서, 컬렉션, 다중 데이터 베이스를 다루는 방법
- 기본적인 쓰기 연산과 조건절을 포함한 복잡한 쿼리
- 색인, 집계 도구, 고급 쿼리 기술
- 모니터링, 보안과 인증, 백업과 복구
- 마스터-슬레이브와 자동화된 장애 복구 설정
- 수평 확장을 위한 샤딩 사용법과 어플리케이션에 미치는 영향
- 자바, PHP, 파이썬, 루비 기반 예제
추천사지난 10년간 인터넷은 누구도 예측할 수 없는 형태로 진화하며 관계형 데이터베이스를 거부해왔다. 그 동안 큰 인터넷 회사에서 MySQL을 사용해온 나는 이를 몸소 경험했다. 우선 단일 서버로 소규모 데이터를 처리한다. 그러다 어느 순간 읽기 성능과 장애를 다루기 위해 복제 서버를 설정하는 자신을 발견하게 된다. 여기서 오래 지나지 않아 캐시 계층을 추가하고, 쿼리를 튜닝하고, 장비를 갈아 엎어 보기도 한다. 나중엔 데이터를 여러 서버에 분산하고 프로그램 로직을 바꿔야 하는 시점에 도달하는데 이 때 비로소 몇 달 전에 모델링한 스키마가 장애물로 변해 있음을 깨닫게 된다.왜냐하면, 이미 데이터베이스 서버에 너무 많은 데이터가 쌓여 스키마를 변경하자니 너무 많은 시간이 들고 불가피하게 귀중한 DBA 리소스를 투입해야 하기 때문이다. 물론 코드 단에서 처리하는 것보다는 쉬운 작업이다. 이 때문에 개발팀이 최소 몇 달간 바빠질 수 있다. 결국 우리는 더 좋은 방법이나 데이터베이스가 해결해줄 수 없는지 찾아 헤매게 된다. 오픈 소스 커뮤니티는 우리들의 "더 좋은 방법"에 대한 갈망에 응답하듯 단순한 인-메모리 기반의 키/값 저장소부터 SQL을 지원하는 MySQL/InnoDB 파생물까지 다양하게 쏟아놨는데, 이는 오히려 "적절한 솔루션 찾기"를 더 어렵게 만들었다. 정말 많이 살펴봤다. 그 중에서 나는 MongoDB의 실용적 접근에 매료되었는데 MongoDB는 "모든 기능을 다 제공하려고 하지 않고 위에 언급된 골치 아픈 문제들만 해결하겠다"는 명확한 태도로 기능성과 복잡성 사이의 올바른 균형점을 정확히 겨냥했다. 한마디로, 요즘 웹 애플리케에이션에 필요한 샤딩, 색인, 복제, 고급 쿼리 문법, 유연한 데이터 모델 기능을 고성능으로 제공한다.이 책은 MongoDB와 같이 매우 간결하며 이해하기 쉽다. 처음 접하는 사용자도 1장부터 탐독하며 바로 실행해볼 수 있다. 이미 MongoDB를 경험해본 사용자는 인기 있는 클라이언트 API는 물론 복제, 백업, 샤딩 등 고급 관리에 대한 주제를 고루 다루는 탄탄한 참고서의 진가를 느끼게 될 것이다. 나도 요즘 실무에 적용하고 있데, 이 책에서 제공하는 설치부터 실제 서비스 적용까지 든든한 지원군이 되고 있다. MongoDB 사용을 고민하는 개발자에게 꼭 필요한 필독서다. - 2010년 8월, 제레미 자와드니, 크레이그리스트 개발자