분야: [데이터베이스 & 빅데이터, 프로그래밍]
출간일: 2012. 2. 28
페이지: 360
도서정가: 25,000 원
ISBN: 9788993827422
J.Chris Anderson, Jan Lehnardt, Noah Slater 저 / 천호민 역
CouchDB는 느슨하거나 일시적인 연결을 사용하는 자립적인(self-contained) 데이터 모델을 가지고 있는데, 이 모델은 실무에서의 계약서, 주문서, 영수증 등과 같은 다양한 형태의 정보들을 처리하는데 적합하며 또한 CouchDB가 많은 종류의 데이터를 손쉽게 처리할 수 있다는 것을 알게 될 것이다. 이 책을 통해서 여러분은 RESTful 웹 인터페이스를 통해 CouchDB가 어떻게 동작하는지를 배울 것이며 또한 문서의 간단한 CRUD(create, read, update, delete)와 맵리듀스, 개선된 배포를 비롯한 다양한 핵심 기능들에 대해 익숙해 질 것이다.
출판사 서평
"훌륭한 책이다. 간결한 문체와 명확한 설명, 유용한 예제로 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
문제 해결