거침없이 배우는 CouchDB

J.Chris Anderson, Jan Lehnardt, Noah Slater 저 / 천호민 역

CouchDB는 느슨하거나 일시적인 연결을 사용하는 자립적인(self-contained) 데이터 모델을 가지고 있는데, 이 모델은 실무에서의 계약서, 주문서, 영수증 등과 같은 다양한 형태의 정보들을 처리하는데 적합하며 또한 CouchDB가 많은 종류의 데이터를 손쉽게 처리할 수 있다는 것을 알게 될 것이다. 이 책을 통해서 여러분은 RESTful 웹 인터페이스를 통해 CouchDB가 어떻게 동작하는지를 배울 것이며 또한 문서의 간단한 CRUD(create, read, update, delete)와 맵리듀스, 개선된 배포를 비롯한 다양한 핵심 기능들에 대해 익숙해 질 것이다.



도서 상세

분야: [프로그래밍, 데이터베이스 & 빅데이터]

출간일: Feb 28, 2012

페이지: 360

도서정가: 25,000 원

ISBN: 9788993827422

부가 정보


출판사 서평

"훌륭한 책이다. 간결한 문체와 명확한 설명, 유용한 예제로 CouchDB에 대해 잘 설명하고 있다." 
                                                   ---------- 셸리 파워스Learning JavaScript 저자

3명의 CouchDB 개발자는 자신들이 개발한 문서 지향 데이터베이스를 단독 실행형 애플리케이션 프레임워크 또는 대용량 분산 시스템으로써 어떻게 사용하는지 설명한다. 데이터를 저장하고 처리, 접근하기 위해 단순한 데이터 모델을 사용함으로써 CouchDB는 느슨히 구조화된 대용량 데이터를 처리해야 하는 웹 애플리케이션을 위한 가장 이상적인 방법으로 자리잡고 있다. 오픈 소스로 개발된 CouchDB는 높은 신뢰성과 쉬운 확장성 그리고 빠른 응답을 제공하며, 기존의 관계형 데이터베이스가 가지고 있던 제약사항들을 서서히 줄여 갈 것이다.

■ 문서 기반 저장소와 그의 사용에 관한 기본적인 내용들을 이해한다.
■ HTTP 프로토콜을 기반으로 하는 RESTful 인터페이스를 통해 CouchDB와 상호작용한다.
■ 자립적인 JSON 문서로 데이터를 모델링 한다.
■ 자연적으로 진화하는 데이터 스키마를 처리한다.
■ 맵리듀스 뷰를 사용해서 CouchDB에 저장된 데이터를 쿼리하고 집계한다.
■ 노드간에 데이터 복제한다.
■ 성능과 신뢰성을 향상시키기 위해 CouchDB를 정비한다.

저자 소개

J.Chris Anderson : 아파치 CouchDB 개발자이며 Relaxed Inc.의 공동 설립자이다. 자바스크립트 CouchApps 개발에 참여했으며 사용자에게 제어권을 주기 위한 웹 물리학에 열중하고 있다.

Jan Lehnardt : 아파치 CopuchDB 개발자이며 Relaxed Inc.의 공동 설립자이다. 웹에 관련된 전반적인 기술에 능통한 전문가로 개발자의 삶을 좀 더 쉽게 만드는데 노력 중이다.

Noah Slater : 아파치 CouchDB 개발자이며 릴리즈 메니저이다. 가능한 많은 곳에서 CouchDB가 동작할 수 있도록 커뮤니티와 협업하며 일에 매진하고 있다.


역자 소개

천호민 : 2008년부터 마이크로소프트 C# MVP로 3년간 활동하면서 .Net 플랫폼에 관한 기술 세미나 발표 및 「생각하는 C#.LINQ」 저서, 「하루 1시간 3일만에 배우는 HTML5」 역서를 출간했다. SI를 거쳐 인터넷 서비스 분야에서 일하다가 CJ 인터넷을 마지막으로 올 초에 하고 싶은 것을 위해 회사를 퇴사한 후 나름의 시간을 보냈다. 가까운 사람들과 술마시며 이야기 하는 것을 좋아하며 지금은 새로운 환경에서의 시작을 위해 시간을 보내고 있다.


PART 01 소개
CHAPTER 01 왜 CouchDB인가?
느긋해지자 
여러분의 데이터를 모델링하는 다른 방법 
일반적인 애플리케이션을 위한 뛰어난 적합성 
자립적인 데이터 
신택스와 시맨틱스 
대형 시스템을 위한 빌딩 블록 
CouchDB 복제 
로컬 데이터가 왕이다 
정리하면 

CHAPTER 02 궁극적 일관성
협업하기 
CAP 정리 
로컬 일관성 
데이터의 핵심 
잠금 없음 
유효성 검사 
분산된 일관성 
증분 복제 
사례 연구 
정리하면 

CHAPTER 03 CouchDB 시작하기
자, 이제 시작이다! 
푸탄에 온 걸 환영합니다 
첫 데이터베이스와 문서 
맵리듀스를 이용한 쿼리 실행 
복제하기 
정리하면 

CHAPTER 04 핵심 API
서버 
데이터베이스 
문서 51
리비전 
문서 구체화하기 
복제 
정리하면 

PART 02 CouchDB로 개발하기
CHAPTER 05 설계 문서
문서 모델링 
쿼리 서버 
애플리케이션은 문서다 
기본 설계 문서 
앞으로는 

CHAPTER 06 뷰를 이용한 데이터 검색
뷰는 무엇인가? 
효율적인 탐색 
단일 탐색 
다중 탐색 
반전된 결과 
포스트의 댓글 조회 뷰 
Reduce/Rereduce 
학습 교훈 
정리하면 

CHAPTER 07 유효성 체크 함수
문서 유효성 체크 함수 
유효성 검사의 컨텍스트 
유효성 체크 함수 작성 
타입 
필수 필드 
타임스탬프 
저작권 인증 
정리하면 

CHAPTER 08 Show 함수
Show 함수 API 
부작용 해소 
설계 문서 
Show 함수 쿼리하기 
설계 문서 리소스 
쿼리 파라미터 
Accept 헤더 
Etags 
함수와 템플릿 
!json 매크로 
!code 매크로 
Shows 살펴보기 
템플릿 사용하기 
템플릿 작성 

CHAPTER 09 리스트 함수를 이용한 뷰 변환
List 함수의 파라미터 
List 함수 예제 
리스트 이론 
리스트 쿼리하기 
리스트, Etags, 캐싱 

PART 03 CouchDB 예제 애플리케이션
CHAPTER 10 단독 실행형 애플리케이션
올바른 버전의 사용 
이동 가능한 자바스크립트 
애플리케이션은 문서다 
단독 실행형 
정글에는 
정리하면 

CHAPTER 11 설계 문서 관리
예제 애플리케이션 살펴보기 
CouchApp 설치하기 
CouchApp 사용하기 
소파 소스 코드 다운로드 
CouchApp 복제 
ZIP과 TAR 파일 
GitHub의 소파 개발 커뮤니티에 참여하기 
소파 소스 트리 
소파 배포하기 
CouchDB에 소파 배포하기 
애플리케이션 방문하기 
관리자 계정 생성 
안전한 CouchDB에 배포하기 
.couchapprc를 통해 CouchApp 구성하기 

CHAPTER 12 문서 저장
JSON 문서 포맷 
_id와 _rev 너머: 여러분의 문서 데이터가 있다 
편집 페이지 
HTML 기반 
문서 저장하기 
유효성 체크 
첫 번째 블로그 포스트 저장하기 
정리하면 

CHAPTER 13 문서에 사용자 정의 포맷 적용하기
Show 함수로 문서 렌더링하기 
포스트 페이지 템플릿 
동적 날짜 표시 

CHAPTER 14 블로그 포스트 목록 보기
최근에 작성한 블로그 포스트의 Map 함수 
List 함수를 사용해 HTML 뷰 렌더링하기 
Sofa의 리스트 함수 
최종 결과 

PART 04 CouchDB 예제 애플리케이션
CHAPTER 15 스케일링 기본
스케일링 읽기 요청 
스케일링 쓰기 요청 
스케일링 데이터 
첫 번째 기본 

CHAPTER 16 복제
복제의 마술 
관리자 인터페이스를 이용한 쉬운 복제 
복제 해부하기 
지속적인 복제 
이게 전부? 

CHAPTER 17 충돌 관리
스플릿 브레인(Split Brain) 
예제를 통한 충돌 해결 
충돌을 고려한 작업 
결정론적 리비전 ID 
정리하면 

CHAPTER 18 로드 밸런싱
백업하기 

CHAPTER 19 클러스터링
CouchDB 라운지 소개 
일관된 해싱 
잉여 저장소 
잉여 프록시 
뷰 결합 
클러스터 증가 
파티션 이동 
파티션 분할 

PART 05 레퍼런스
CHAPTER 20 변경 알림
변경사항 폴링 
롱 폴링 
지속적인 변경사항 폴링 
필터 
정리하면 

CHAPTER 21 SQL Jockey를 위한 뷰 쿡북(Cookbook)
뷰 사용하기 
뷰 정의 
뷰 쿼리하기 
맵리듀스 함수 
키로 데이터 검색 
접두어로 데이터 검색 
집계 함수 
유일한 값 얻기 
유일성 강제하기 

CHAPTER 22 보안
관리자 파티 
새로운 관리자 사용자 생성 
비밀번호 해싱 
기본 인증 
유효성 체크 재변경 
쿠키 인증 
네트워크 서버 보안 

CHAPTER 23 고성능
좋은 벤치마크의 중요성 
고성능 CouchDB 
하드웨어 
실행에 관한 참조 
대량 데이터 추가와 거의 변경되지 않는 DocID 
최적화된 예제: 뷰와 복제 
대용량 문서 저 
배치 모드 
단일 문서 저장 
호버크라프트 
트레이드-오프 
그러나 팀장은 수치로 증명하길 원해 
실전 대비 

CHAPTER 24 레시피
은행 업무 
은행원 여러분, 지우개는 사용하지 맙시다 
정리하면 
리스트 정렬 
정수 리스트 
실수 리스트 
페이징 처리 
예제 데이터 
페이징 처리 로직 
느린 페이징 처리(사용 금지) 
빠른 페이징(사용 권장) 
페이지 이동 

PART 06 부록
APPENDIX A 유닉스 계열의 시스템에 CouchDB 설치하기
데비안 GNU/리눅스 
우분투(Ubuntu) 
젠투(Gentoo) 리눅스 
문제 해결 

APPENDIX B 맥 OS X에 CouchDB 설치하기
CouchDBX 
Homebrew 
MacPorts 

APPENDIX C 윈도우에 CouchDB 설치하기

APPENDIX D 소스로 CouchDB 설치하기
의존성 
(우분투를 포함한) 데비안 기반 시스템 
맥 OS X 
설치 307
보안에 대한 고려사항 
수작업 실행 
데몬으로 실행하기 
SysV/BSD 스타일 시스템 
맥 OS X 
문제 해결