메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

MongoDB 완벽 가이드 : NoSQL의 진수를 만나다!

  • 저자 : 크리스티나 초도로우 , 마이클 디롤프
  • 번역 : 윤진석
  • 출간 : 2011-05-19
  • 페이지 : 240 쪽
  • ISBN : 9788979148251
  • 물류코드 :1825
초급 초중급 중급 중고급 고급
2.8점 (4명)
좋아요 : 33
대용량 데이터 베이스용 NoSQL의 진수를 만나라!

웹 어플리케이션을 통해 수집된 대용량 데이터를 MongoDB로 어떻게 관리할 수 있을까? MongoDB 메인 커미터가 직접 소개하는 문서 지향 데이터베이스의 다양한 장점을 배우다 보면, 수평적인 무한 확장을 제공하는 MongoDB가 "왜 신뢰성 있고", "왜 고성능 데이터베이스로 유명한지"를 알게 될 것이다.

어떤 독자를 위한 책인가?
  • 클라우드 컴퓨팅 분야의 학자, 개발자, 기술 기획자
  • 데이터 마이닝 등 데이터 분석 및 알고리즘 학자, 개발자
쉽고 친절하게 핵심과 실전 사례를 제시한다!

이 책은 MongoDB 오픈 소스를 만들고 제공하는 10gen 엔지니어들에 의해 집필되었으며 데이터베이스 개발자를 위한 지침, 시스템 관리자를 위한 고급 구성, 기타 프로젝트 구성원을 위한 개념에 대한 개요 및 실전 사례를 제공한다.
  • 관계형 데이터베이스의 레코드보다 쉬운 JSON 스타일 문서
  • 문서 지향 데이터베이스 실전 활용 사례
  • 스키마가 없이 문서, 컬렉션, 다중 데이터 베이스를 다루는 방법
  • 기본적인 쓰기 연산과 조건절을 포함한 복잡한 쿼리
  • 색인, 집계 도구, 고급 쿼리 기술
  • 모니터링, 보안과 인증, 백업과 복구
  • 마스터-슬레이브와 자동화된 장애 복구 설정
  • 수평 확장을 위한 샤딩 사용법과 어플리케이션에 미치는 영향
  • 자바, PHP, 파이썬, 루비 기반 예제
추천사

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

크리스티나 초도로우

10gen 개발자이자 MongoDB 메인 커미터다. 그녀는 데이터베이스 서버와 PHP, Perl 드라이버 등을 만들었으며 OSCON, LinuxCon, FOSDEM, Latinoware 같은 세계적인 컨퍼런스에서 활동하였고, MongoDB와 몇 가지 주제를 다룬 웹사이트를 운영 중이다(http://www.snailinaturtleneck.com). 현재 뉴욕에 거주하고 있다.
저자

마이클 디롤프

10gen 개발자이며 PyMongo 프로젝트 관리자다. 또한 전 MongoDB 루비 드라이버 프로젝트 관리자였으며, 다른 몇 가지 라이브러리와 도구에도 기여하였다. 세계 메이저 컨퍼런스에서 MongoDB에 대한 강연을 한 바 있고, 현재 뉴욕에 거주하고 있다.
역자

윤진석

오픈 소스 개발자이자 아파치 소프트웨어 파운데이션 멤버다. 지난 5년간 하둡과 HBase 프로젝트에 기여해왔고, 현재는 하둡 기반의 과학 연산 프레임워크인 Hama 프로젝트를 설립하여 리드개발하고 있다. 또한 KT 클라우드 추진본부에서 NoSQL 관련 프로젝트를 리드개발하고 있다. 트위터는 http://twitter.com/eddieyoon이다.

1장 MongoDB 소개 
  1 다양한 데이터 모델 
  2 손쉬운 확장 
  3 다양한 기능 
  4 고성능 
  5 간편한 관리 
  6 잠깐, 이것 외에도... 
 
2장 시작하기 
  1 문서 
  2 컬렉션 
    스키마가 없다 
    네이밍 
  3 데이터베이스 
  4 MongoDB 시작하기 
  5 MongoDB 쉘 
    쉘 실행하기 
    MongoDB 클라이언트 
    기본적인 쉘 작업 
    쉘 활용 팁 
  6 데이터형 
    기본 데이터형 
    숫자 
    날짜 
    배열 
    내장 문서 
    _id와 ObjectIds 
 
3장 문서의 생성, 갱신, 삭제 
  1 문서의 삽입과 저장 
    일괄 삽입 
  2 문서 삭제 
    삭제 속도 
  3 문서 갱신 
    문서 치환 
    제한자 사용법 
    갱신입력 
    갱신한 문서의 반환 
  4 데이터베이스 중 가장 빠른 쓰기 연산 
    안전 연산 
    "정상적인" 오류 처리 
  5 요청과 연결 
 
4장 쿼리하기 
  1 찾기 소개 
    반환받을 키 지정하기 
    제약 사항 
  2 쿼리 조건 
    쿼리 조건절 
    OR 쿼리 
    $not 
    조건절의 법칙 
  3 형 특정 쿼리 
    null 
    정규표현식 
    배열에 쿼리하기 
    내장 문서에 쿼리하기 
  4 $where 쿼리 
  5 커서 
    제한, 건너뛰기, 정렬 
    많은 수의 skip 피하기 
    고급 쿼리 옵션 
    일관적인 결과 얻기 
  6 커서 내부 작동 
 
5장 색인 
  1 색인 소개 
    색인 확장하기 
    내장 문서 내 키 색인하기 
    정렬을 위해 색인하기 
    고유하게 식별되는 색인 
  2 고유 색인 
    중복 제거하기 
    복합 고유 색인 
  3 explain과 hint 사용하기 
  4 색인 관리 
    색인 변경 
  5 공간 정보 색인 
    복합 공간 정보 색인 
    지구는 2차원 평면이 아니다 
 
6장 집계 
  1 count 
  2 distinct 
  3 group 
    종결자 사용하기 
    함수를 키로 사용하기 
  4 맵리듀스 
    예제 1: 컬렉션에서 모든 키 찾기 
    예제 2: 웹페이지 분류하기 
    MongoDB와 맵리듀스 
 
7장 고급 기능 
  1 데이터베이스 명령어 
    명령어 수행 원리 
    명령어 참조 
  2 제한 컬렉션 
    속성과 그 사용 사례 
    제한 컬렉션 생성 
    자연스럽게 정렬하기 
    꼬리를 무는 커서 
  3 GridFS: 파일 저장하기 
    GridFS 시작하기 : mongofiles 
    MongoDB 드라이버로 GridFS 작업하기 
    내부 살펴보기 
  4 서버 측 스크립트 
    db.eval 
    저장 자바스크립트 
    보안 
  5 데이터베이스 참조 
    DBRef란 무엇인가 
    예제 스키마 
    드라이버의 DBRef 지원 
    DBRef는 언제 사용하나 
 
8장 관리 
  1 MongoDB 시작과 중지 
    커맨드라인에서 시작하기 
    파일 기반 설정 
    MongoDB 중지하기 
  2 모니터링 
    관리자 인터페이스 사용하기 
    serverStatus 
    mongostat 
    써드파티 플러그인 
  3 보안과 인증 
    인증의 기본 
    인증 과정 방식 
    기타 보안 관련 고려 사항 
  4 백업과 복구 
    데이터 파일 백업 
    mongodump와 mongorestore 
    fsync와 락 
    슬레이브 백업 
    복구 
 
9장 복제 
  1 마스터-슬레이브 복제 
    옵션 
    소스 추가 및 제거 
  2 레플리카 셋 
    레플리카 셋 초기화하기 
    레플리카 셋 내 노드들 
    장애 시 요청 넘김과 주 노드 선출 
  3 슬레이브에서 연산 수행하기 
    읽기 분산 확장 
    슬레이브를 사용해 데이터 처리하기 
  4 작동 원리 
    Oplog 
    동기화 
    복제 상태와 로컬 데이터베이스 
    복제 지연하기 
5 관리 
    진단 
    oplog 크기 변경하기 
    인증을 통한 복제 
 
10장 샤딩 
  1 샤딩 소개 
  2 MongoDB의 자동 샤딩 
    샤딩을 써야할 때 
  3 샤딩 방식의 키: 샤드 키 
    기존 컬렉션의 샤딩 
    증가하는 샤드 키 대 무작위 샤드 키 
    연산에 대한 샤드 키의 영향 
  4 샤딩 설정하기 
    서버 시작하기 
    데이터 샤딩하기 
  5 실제 서비스 환경 설정 
    견고한 설정 
    여러 mongos 프로세스 
    튼튼한 샤드 
    물리적 서버 
  6 샤딩 관리 
    config 컬렉션 
    샤딩 명령어 
 
11장 예제 애플리케이션 
  1 화학 성분 검색 엔진: 자바 
    자바 드라이버의 설치 
    자바 드라이버의 사용 
    스키마 설계 
    자바로 작성하기 
    문제점 
  2 뉴스 모음: PHP 
    PHP 드라이버 설치 
    PHP 드라이버 사용하기 
    뉴스 모음의 설계 
    댓글 트리 
    투표 
  3 커스텀 폼 제출: 루비 
    루비 드라이버 설치하기 
    루비 드라이버 사용하기 
    커스텀 폼 제출 
    루비 객체 맵퍼, 레일즈와 MongoDB 사용하기 
  4 실시간 지표: 파이썬 
    PyMongo 설치하기 
    PyMongo 사용하기 
    실시간 지표를 위한 MongoDB 
    스키마 
    요청 처리하기 
    지표 데이터 사용하기 
    또 다른 고려사항들 
 
부록A MongoDB 설치 
  1 버전 선택 
  2 윈도우 설치 
  3 POSIX(리눅스, 맥 OS X, 솔라리스) 설치 
    쉘 유틸리티 
 
부록B MongoDB: 쉘 
 
부록C MongoDB 내부 
  1 BSON 
  2 와이어 프로토콜 
  3 데이터 파일 
  4 네임스페이스와 익스텐트 
  5 메모리 맵드 스토리지 엔진 
 
찾아보기

  • I"ve never handled big data since I worked. As you know, database part is so big and crucial.
    When I learned database in my university, my professors taught me integrity and non-redundancy of data based on relational database.

    Have been working in a real field as a software programmer, I always worry about its performance and optimization.
    However, as a system is bigger, database is much complexer. Which means I have no choice but to do join operation and make new table or view to support new functionality. It could follow a consideration about database"s scalability. Relational database has weak points such as that.

    Moreover, trends have changed from relational database to ORM(object-relational mapper) with new many frameworks like Django which is web framework by Python. One of disappointments of ORM is not to support full functionality of relational database and performance.

    I finally tried to find new database system. As soon as I did, I realized that NoSQL is new wave for Web2.0. Mongo DB system, one of NoSQL database systems, is from 2007 and made to overcome many flaws of relational database even thought Object-oriented-database exist to solve the same problems.

    Mongo DB provides simply syntax, light operations and extra new features. The most interesting thing has no schema which can offer the freedom of changing data anytime. One more thing provides system"s scalability and backup. You can backup database with 1 line command. It is awesome.

    This book is perfect for beginner. Basically it is thin but gives good benefit not to lose your interesting. I read it for 5-6 hours without testing examples in it.

    In terms of Django which aims to develop fast and flex, it is just the job with Mongo DB. Pymongo is a package for developer to use it with Python and mongo engine is suitable for Django.

    I recommend a few things
    - It helps to choose DB system http://www.odbms.org/download/Cattell.Dec10.pdf
    - After installing mongo DB, you can meet this warning message "*** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support" about UTF-8. You can fix it from this site(http://wmilesn.com/2011/07/code/why-does-mongodb-fail-when-searching-non-ascii-entries-a-k-a-how-to-properly-install-mongoddb/).
    - http://www.youtube.com/watch?v=w5qr4sx5Vt0

  • MongoDB 완벽가이드 (한빛미디어)

    MongoDB를 배우고 싶은 사람이라면 이 책부터 시작하세요..

    시중에서 MongoDB를 다루는 국내서/번역서는 이 책이 유일하다. 그만큼 아직 MongoDB는 대중화가 안됐고 사용층이 넓지 않기 때문이다. 하지만 요새 내가 자주 방문하는 해외 블로그에서는 MongoDB 이용한 오픈소스 프로젝트를 진행 중이다. MongoDB 공식 웹 사이트에서도 이와 관련한 설명을 얻을 수 있지만, 책으로 정리된 내용을 보는 것이 아무래도 관련 지식 습득에는 제일 빠른 방법일 것이다. 다행히 이 책이 번역되어 있어서 굉장히 빠르게 MongoDB를 파악할 수 있었다.

    기초 → 고급 → 실전의 구성 맘에 들어

    책의 구성은 내가 좋아하는 스타일인 기초설명 → 고급 설명 → 예제 프로젝트 순으로 되어 있다. 기초 설명 부분은 나처럼 NoSQL을 처음 접한 사람도 쉽게 따라갈 수 있을 정도다. 하지만 역시 고급 설명 부분로 들어서면서 부터는 아무래도 내가 기초 지식이 부족한 상황이라 설명이 제대로 이해가 안되는 부분이 꽤 있었다.

    번역서에 대한 아쉬움

    항상 한빛미디어에서 출간되는 오라일리 책 번역본을 보면 초보자가 보기에는 기술적인 난이도가 있어 보인다. 물론 원서에 충실하다면 상관없겠지만, 결국 독자는 이 책을 읽은 후 보다 많은 지식을 얻어갔으면 하는 바램을 가지고 있을 것이다. 그렇다면 부록 등을 이용해서 저자가 좀 더 독자들을 위해서 관련 내용을 설명해주는 페이지가 있었으면 얼마나 좋을까?

    만약 이런 지원이 된다면 독자는 이 책의 가격인 25,000원이라는 값을 절대 부담스러워하지 않을 것이다.
    또한 전체적으로 번역은 매끄러운 편이나

  • MongoDB의 책의 앞 커버에 "NoSQL의 진수를 만나다!"와 책의 뒷 커버에 있는 "페이스북, 트위터가 선택한 MongoDB"가 책을 구매하도록 끌리게 하는 문구이기는 하지만, NoSQL에 대한 정의 부터 정리되지 않고 바로 문법적인 설명을 들어가는 등 사전 지식이 없는 사람에게는 초반부터 정신을 차리지 못하게 하는 책인 듯 하다.

    우선 책이 얇아서 접근이 용이하기에 빠르게 MongoDB를 알아가는데 많은 도움이 될 듯하다.
    그런데 1장에서 간략한 MongoDB의 자랑이 있기는 한데 NoSQL의 정보라든가 좀더 도움이 될만한 정보다 더 있었으면 하는 아쉬움이 남는다.

    2장, 3장, 4장, 5장, 6장, 7장을 통해서 문법적인 부분에 대해서 잘 설명이 되어 있는 것 같지만 정작 예제를 실행하는데에는 많은 한계가 노출된다. 미리 어떤 데이터들이 등록되어 있어야 예제들을 실행해 볼 수 있을 텐데 그러지 못하는 부분이 상당히 많고, 아예 테스트를 해보지 못할 코드도 있어 예제에 믿음이 안가기도 한다. 테스트 해볼 수 있는 예제 소스가 미리 제공되지 않는다는 것이 아쉽다.

    8장 이후로 관리 및 여러 DB 서버를 구축해서 분산 처리하는 부분이 나오는데 맵리듀스에 관해서는 너무 간략하게 나와서 그냥 이런게 있구나 하는 식으로밖에 이해하고 넘어가는 수준인거 같다. 좀더 자세히 알아보기 위한 가이드나 링크 아니면 한빛에서 나온 다른 참고 도서 소개가 추가되었으면 좋았겠다는 생각이 든다. 아직도 이 부분은 이해가 안되는 부분이기도 하다.

    특히나 관리부분에 대해서는 실제로 예제 부분도 적고 확인하는 방법도 제약적이라 이해하는데 어려움이 많았다.

    전반적으로 MongoDB의 완벽가이드라기 보다는 MongoDB를 맛볼 수 있는 입문서로 적합할 것 같다는 생각이 든다. 다 읽고 나서도 MongoDB를 좀더 잘 사용하기 위해서는 좀더 배워야 할 것 같고 다른 도서를 더 봐야 할 것 같은 불안감에 휩싸인다.

  • 얼마전 자바 컨퍼런스에 갔다가 한빛미디어 부스에서 이 책을 발견하고 바로 샀습니다.(5000원 dc)
    쭉 못 읽고 있다가 얼마전 몇 시간동안 통독을 했는데..기대 이하의 내용이라 많이 실망했습니다.

    * 단점

    1. 완벽가이드인가?
    - 책의 분량이 적었는데도 완벽 가이드, 샤딩 설명 그림등을 보고, 구조적인 부분을 기대했는데 몽고쉘을 이용한 사용법과 문법 위주.
    - 샤딩을 제외한 아주 간소한 구조 설명
    - 완벽가이드 보다는 입문서.
    - 절대 nosql의 진수를 알 수 없음

    2. 번역...
    - 역자가 아파치 커미터 여서 어느정도 안심했었는데, 용어에대한 통일성이 없고 억지 번역이 많이 보임.
    ex)
    * 종결자.. finalizer라고 생각할 수 있는 개발자가 얼마나될까요? 그냥 finalizer라고 하지..;;
    * 맵리듀스 mapdeduce의 수행 결과를 임시 컬렉션 이름으로 사용되는 부분이 있는데 이걸 그냥 맵리듀스라고 번역해서 어이없었음.(tmp.mr.맵리듀스_1266.....<== tmp db의 mapreduce 컬렉션 명)
    - 기본적인 번역은 나쁘지 않은데 용어들에대해서 마지막에 전체 바꾸기를 통해서 바꾼듯한 인상이 강하게 듬

    3. 가격...
    - 이책이 2만5천의 가치가 있는가?

    4. nosql의 진수 부하분산, 샤딩에 대한 예제가 너무 미약함.(www.mongodb.org 를 보는게 1000번 낫다!!)

    * 장점.
    - 빠른시간안에 몽고디비를 설치해서 테스트 가능
    - 간단한 프로젝트에 바로 적용 가능한 아이디어를 제공하는 예제 (뎃글, 태그, 조회수 분석 등..)
    - kt 가상서버에 서버를 올리고 서비스를 제공하는 모바일 서비스에 적합할 것으로 보임(빠른시간안에 만들고 서비스하고..)

    - 얇아서 부담없이 언제 어디서나 읽을 수 있음.

결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
MongoDB 완벽 가이드 : NoSQL의 진수를 만나다!
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
MongoDB 완벽 가이드 : NoSQL의 진수를 만나다!
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
MongoDB 완벽 가이드 : NoSQL의 진수를 만나다!
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실