이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
카산드라 완벽 가이드
페이스북, 트위터를 지탱하는 기술, NoSQL
원제
Cassandra
베스트
IT 모바일 top100 12주
가격
32,000
10 28,800
YES포인트?
1,600원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

1장. 카산드라 소개
__01 관계형 데이터베이스의 문제점
__02 관계형 데이터베이스 재검토
__03 카산드라 엘리베이터 피치
__04 카산드라의 유래
__05 카산드라 사용 사례
__06 누가 카산드라를 사용하는가?
__07 요약

2장. 카산드라 설치
__01 바이너리 설치
__02 소스 빌드
__03 카산드라 실행하기
__04 명령줄 클라이언트 인터페이스 실행하기
__05 CLI 기본 명령어
__06 요약

3장. 카산드라 데이터 모델
__01 관계형 데이터 모델
__02 간단한 소개
__03 클러스터
__04 키스페이스
__05 컬럼 패밀리
__06 컬럼
__07 슈퍼 컬럼
__08 RDBMS와 카산드라의 디자인 차이
__09 디자인 패턴
__10 기억할 점
__11 요약

4장. 예제 애플리케이션
__01 데이터 디자인
__02 호텔 앱 RDBMS 디자인
__03 호텔 앱 카산드라 디자인
__04 호텔 애플리케이션 코드
__05 트위산드라
__06 요약

5장. 카산드라 아키텍처
__01 시스템 키스페이스
__02 P2P
__03 가십과 결함 발견
__04 안티엔트로피와 읽기 복구
__05 멤테이블, SSTable, 커밋 로그
__06 힌트 핸드오프
__07 컴팩션
__08 블룸 필터
__09 툼스톤
__10 SEDA
__11 매니저와 서비스
__12 요약

6장. 카산드라 설정
__01 키스페이스
__02 복제본
__03 복제본 배치 전략
__04 복제 계수
__05 파티셔너
__06 스니치
__07 클러스터 생성하기
__08 동적 링 참여
__09 보안
__10 기타 도구
__11 요약

7장. 데이터 읽기와 쓰기
__01 RDBMS와 카산드라의 쿼리 차이
__02 기본 쓰기 속성
__03 일관성 레벨
__04 기본 읽기 속성
__05 API
__06 설정과 데이터 삽입
__07 간단한 get 사용법
__08 값의 일부를 시딩하기
__09 슬라이스 조건자
__10 범위 슬라이스 가져오기
__11 멀티겟 슬라이스
__12 삭제
__13 배치 뮤테이트
__14 프로그램으로 키스페이스 컬럼 패밀리 정의하기
__15 요약

8장. 클라이언트
__01 클라이언트 기본 API
__02 스리프트
__03 에이브로
__04 기트 요약
__05 클라이언트 노드 연결하기
__06 카산드라 웹 콘솔
__07 헥터
__08 HectorSharp
__09 Chirper
__10 Chiton
__11 Pelops
__12 Kundera
__13 Fauna
__14 요약

9장. 모니터링
__01 로깅
__02 JMX와 MBean 개요
__03 JMX로 카산드라와 상호작용하기
__04 카산드라의 MBean
__05 사용자 정의 카산드라 MBean
__06 런타임 분석 도구
__07 상태 검사
__08 요약

10장. 유지보수
__01 링 정보
__02 통계 정보
__03 기본 유지보수
__04 스냅샷
__05 클러스터의 로드밸런싱
__06 노드 해제
__07 노드 업데이트
__08 요약

11장. 성능 최적화
__01 데이터 스토리지
__02 리플라이 타임아웃
__03 커밋 로그
__04 멤테이블
__05 동시성
__06 캐시
__07 버퍼 크기
__08 파이썬 스트레스 테스트
____파이썬 스리프트 인터페이스 생성
____파이썬 스트레스 테스트 실행
__09 시작과 JVM 설정
____JVM 최적화
__10 요약

12장. 하둡과 통합하기
__01 하둡이란?
__02 MapReduce 사용하기
__03 단어 세기 예제
__04 맵리듀스 관련 도구
__05 클러스터 설정
__06 사용 사례
__07 요약

부록A 비관계형 분야의 고찰
__01 비관계형 데이터베이스
__02 객체 데이터베이스
__03 XML 데이터베이스
__04 문서 지향 데이터베이스
__05 그래프 데이터베이스
__06 키-값 저장소와 분산 해시테이블
__07 컬럼형 데이터베이스
__08 요약

부록B 카산드라로 만드는 블로그
__카테고리 테스트 메서드
__포스트 테스트 메서드
__코멘트 테스트 메서드

저자 소개

저자 : 에벤 휴잇
글로벌 기업에서 애플리케이션 아키텍처의 디렉터로 일하고 있으며, 시스템 전략과 디자인을 책임지고 있다. 아파치 카산드라 프로젝트의 문서화에 기여했으며, 『Java SOA Cookbook』(O'Reilly, 2009)을 비롯해 몇 권의 기술 서적을 집필했다.
역자 : 송무찬
블로그 http://www.sjava.net 한양대학교 컴퓨터 공학과를 석사로 졸업하고 네오위즈, 엔씨소프트 등에서 8년간 서비스 개발을 했다. 카산드라를 기반으로 백 엔드 시스템들을 개발했었고, 현재는 실리콘 밸리에 있는 가상 데스크톱/클라우드 서비스 회사인 ZeroDesktop에서 근무하고 있다.
역자 : 최원우
블로그 http://choiwonwoo.tistory.com
현재까지 10년 이상 개발자로서 노력하고 있으며, 금융/증권/보험/국가기관/게임 회사의 다양한 프로젝트에 참여한 경험이 있다. 대학원에서 보안(암호학)을 전공하고 보안 회사에서 다수의 보안 제품(인증/권한관리/PKI/PMI/SSO/EAM등) 개발에 참여했다. 최근 3년여 동안 해외(영국, 미국)에서 근무했으며, 올해 4월 한국으로 돌아왔다. 현재는 엔씨소프트에서 개발자로 근무하고 있다.

품목정보

발행일
2011년 10월 27일
쪽수, 무게, 크기
436쪽 | 1002g | 188*253*30mm
ISBN13
9788979148527

책 속으로

최근 국내에서도 대용량 데이터를 위한 비관계형 데이터베이스를 일컫는 NoSQL 또는 빅 데이터 솔루션이 많이 도입되고 있다. 국내의 대용량 처리를 위한 솔루션으로 하둡을 많이 사용하는 경향이 있지만, Map/Reduce에 기반을 둔 비실시간의 데이터 처리보다는 하둡 만큼의 데이터 처리 능력과 실시간 처리를 할 수 있는 솔루션이 바로 카산드라다. 그리고 하둡이나 카산드라와 같은 NoSQL이나 빅 데이터 솔루션 대부분은 엄청난 양의 데이터 처리에 분산 기술을 이용해 용량을 확장해 나가는 특징이 있다.
카산드라가 다른 NoSQL 또는 빅 데이터 솔루션과 비교해서 가장 큰 장점으로 말할 수 있는 것이 바로 P2P 기반으로 클러스터를 구성한다는 것이다. 이 구조는 마스터-슬레이브 구조보다 월등한 네트워크 파티션 허용을 통해서 매우 높은 가용성을 확보할 수 있다. 더불어 카산드라에서 기본적으로 제공하는 도구를 사용해서 관리할 수 있고, 자바에서 기본으로 지원하는 JMX를 이용해서 모니터링할 수 있는 기능도 제공하고 있다.
역자가 작업하는 동안에 카산드라는 여러 번의 버전 릴리스를 해서, 새로운 버전의 코드를 확인하는 데 애를 먹었을 정도로 활발하게 프로젝트가 진행 중인 것이 또 다른 강점이다. 그리고 역자가 있는 미국의 샌프란시스코에서는 카산드라만의 콘퍼런스와 유저 그룹미팅이 종종 열리고 있어 인기를 실감할 수 있다. 또한, 카산드라의 저변을 확대하고 수익을 창출하기 위한 회사가 존재한다는 것이 카산드라의 인기를 방증한다고 볼 수 있겠다.
카산드라는 페이스북에서 약 1,000대 이상의 서버로 클러스터가 구성된 최대의 레퍼런스가 있다. 1,000대 이상의 서버로 구성할 수 있는 클러스터 시스템이라면 독자가 고려하고 있는 용량, 로드가 어느 정도인지는 모르겠지만, 고려하는 용량, 로드는 카산드라가 충분히 처리할 수 있다고 확신한다. 또한, 기존 RDBMS에서 카산드라로 마이그레이션한 서비스들도 인터넷에서 쉽게 찾아볼 수 있다. 마이그레이션을 진행했던 엔지니어들의 인터뷰에서도 굉장히 만족스러운 결과였다고 찬사를 보내는 영상을 쉽게 찾아볼 수 있다.
역자도 카산드라를 사용해서 프로젝트를 진행했었고, 진행할 예정인 프로젝트에도 카산드라를 사용할 예정이다. 카산드라를 이용해서 런타임에 스키마를 바꿔가면서 시스템을 업그레이드하는 것은 여태까지 경험해 보진 못한 "다이나믹한 시스템이란 바로 이런 것이다"라는 것을 느끼기에 충분할 것이다.
마지막으로 이런 멋진 기회를 주신 한빛미디어의 한동훈 님과 항상 함께하는 가족에게 감사드리고, ZeroDesktop에서 고객에게 가치를 주기 위해 고생하는 동료에게도 감사드린다.
옮긴이_ 송무찬

최근 많은 세미나와 매체를 통해서 NoSQL이 전파되고, 대형 프로젝트에 적용되어 놀라운(?) 결과물을 보여주는 기사를 쉽게 접할 수 있다. 개인마다 이해 정도는 다를 수 있지만, 새로운 기술 영역을 만들어 가고 있다는 점을 부정할 수는 없다. 하지만, NoSQL이 기존의 RDBMS를 대체할 것이라는 일부 기사는 동의하기 어렵고, 양 기술이 서로의 장단점을 보완하면서 성장할 것이라는 것이 개인적인 판단이다. 그렇기 때문에 기존 RDBMS와 새로운 NoSQL 제품(Cassandra, CouchDB, MongoDB 등)에 대해 지속적인 학습이 필요하고, 이를 바탕으로 각 제품이 지닌 장점을 조합해 대용량 데이터를 처리하면서 안정적인 성능 performance 과 확장성 scalability 을 가진 서비스
를 개발할 수 있어야 한다.
이러한 요구는 개발자 측면에서 서비스(or 제품)를 개발하기 위한 학습 및 고려해야 할 내용이 이전보다 더욱 많아졌고, 업무가 더욱 힘들어 졌다는 느낌을 받게 한다. 하지만, 이 부분에 대해 걱정하지 말아라. 이 책을 읽고 나면 개발자들이 RDBMS을 통해 작업하면서 느꼈던 답답한 부분이 해결될 것이다. NoSQL은 매우 직관적이고, 시스템적인 확장 및 분산, 그리고 개발하기 편한 시스템이라는 것을 느끼게 될 것이다.
NoSQL은 저장 방식에 따라 다양하게 분류된다. 저장 방식을 나열해보면, 키-값 저장, 빅테이블 저장, 문서 저장, 그래프 저장 방식 등이 있다. 카산드라는 키-값 저장에 해당된다. 개인적으로 2009년 영국에서 근무할 때 카산드라를 접했을 때, 2000년 초반 금융 인프라시스템 시스템 개발 시 경험했던 HDB와 개념이 유사하다고 생각했다. 특히, 테이블 간의 조인 Join을 지원하지 않는 점, 데이터 검색과 확장성이 특히 뛰어난 부분이 더욱 유사하다고 생각했다.
근래 대용량 데이터 처리를 고려하는 프로젝트에서는 반드시 NoSQL을 고려하게 된다. 하지만 국내에는 아직까지 국내 개발자가 저술한 전문서를 찾기가 어려워 원서를 찾게 된다. 많은 개발자가 프로젝트의 시스템 아키텍처를 고려하면서 NoSQL 개념과 카산드라에 대한 한글 서적을 찾아보지만, 현재까지는 매우 짧은 글만이 웹에서 발견되고, 책으로는 아직 없었다. 나 역시 이러한 부분 때문에 많은 고생을 했기에 개발자들이 학습하는데 도움을 주고자 이번 번역 작업에 참여했다(개인적으로, 몇 번의 책 번역 작업 중, 이번이 가장 힘들었다. NoSQL이라는 개념이 새로웠고, 번역 작업 중 지속적인 버전업(0.6->0.7->0.8)에 따른 원문과 코드의 반복 수정이 힘들었다).
위에서 짧게 언급했듯이 처음 접하는 몇몇 분들은 개념이 너무 매력적이지만, 과연 기존 RDBMS를 넘어 대신 할 수 있을까? 하는 의구심이 있을 수 있다. 하지만, 지금 그러한 우려는 할 필요가 없다. NoSQL의 사용 용도가 RDBMS와는 확연히 다르기 때문이다.
지막으로 같이 작업했던 무찬이, 영국/미국에서 같이 일을 동료(랜스, 윤정, 리키, 마이클, 아담, 지영, 캐시), 그리고 한국의 김현석 실장님, 이상오 팀장님, 홍영, 호준, 도훈, 현도, 진성 팀원 분들에게 감사의 마음을 전하고 싶습니다. 특히, 많은 조언을 해주신 태윤정님에게 다시 한번 감사의 마음을 전합니다.
옮긴이_ 최원우

---옮긴이 서문 중에서

출판사 리뷰

트위터, 페이스북처럼 수억 명의 사용자가 사용하는 대규모 웹 시스템을 위한 카산드라 데이터베이스 입문서

어떤 독자를 위한 책인가?
SNS를 비롯한 대규모 웹 서비스 개발이 필요한 독자
스마트폰 서비스처럼 대규모 서비스 제공이 필요한 개발자
대용량 데이터베이스를 다뤄야 하는 기업체 전산실

대규모 서비스를 위한 새로운 해법, NoSQL
습관처럼 데이터베이스라면 관계형 데이터베이스를 사용한 것이 아닐까? 관계형 데이터베이스로는 하루 5억명 이상이 사용하는 서비스를 개발할 수 없다. 대규모 서비스 개발을 위해 등장한 것이 비관계형 데이터베이스다. 비관계형 데이터베이스 솔루션 중에 카산드라는 뛰어난 확장성을 자랑한다. 페이스북에서 개발해서 오픈 소스로 공개되었으며, 현재 다양한 웹 서비스나 SNS에서는 카산드라를 사용하고 있다. 그러나 관계형 데이터베이스라는 관성과 타성에 젖어 있는 사람들은 카산드라가 제시하는 비전을 믿지 않는다. 그리스 신화에서 카산드라는 현실을 정확하게 예언하는 예언자지만, 저주를 받아 아무도 그 말을 믿지 않는다. 그리하여 자신의 도시 트로이의 멸망을 예언하지만, 아무도 믿지 않는다. 지금 카산드라가 처한 현실을 정확하게 설명하는 이름이 아닐까? 이제 여러분도 카산드라의 예언이 진실인지 아닌지 확인해보자.

대규모 웹을 위한 분산 데이터베이스
시스템을 무한히 확장해 갈 수 있다면 데이터로 무슨 일을 할 수 있을까? 아파치 카산드라를 이용한다면 여러 데이터 센터에 흩어져 있는 수백 테라에 이르는 데이터도 처리할 수 있다. 페이스북, 트위터, 그 외 대용량 데이터를 처리하는 회사라면 관심 가는 능력이 아닐까? 『카산드라 완벽 가이드』는 카산드라 데이터베이스 관리 시스템을 이용하는 방법, 실제 서비스 환경에서 사용할 수 있는 실용적인 예제와 기술을 소개한다.

카산드라가 사용하는 비관계형 디자인의 장점과 데이터 모델링에 대해 자세하게 설명한다. 대용량 데이터 처리를 위한 데이터베이스 확장 문제를 해결하거나 애플리케이션의 경쟁력을 얻고 싶은 개발자, DBA, 애플리케이션 아키텍트라면 카산드라의 속도와 유연성이 어떻게 도움이 되는지 살펴보기 바란다.

【주요내용】
o 카산드라의 컬럼 지향 구조 이해하기
o 카산드라 데이터 처리
o 클러스터에 노드를 추가하거나 제거하기
o 관계형 모델에서 카산드라 데이터 모델로 변경하기
o 클러스터의 사용량, 메모리 패턴을 모니터링하기
o 성능 최적화를 위한 메모리 설정, 데이터 스토리지, 캐시 구성

추천평

카산드라를 만든 팀과 함께 일하게 되어 영광입니다. 최신의 연구를 동작하는 코드로 만들어내는 뛰어난 능력을 갖고 있습니다. 에번 휴잇은 복잡한 분산 시스템을 독자가 쉽게 읽을 수 있는 실용적인 가이드로 만들어냈습니다.
제프 해머바처 (Chief Scientist, Cloudera)
카산드라는 페이스북이 2008년 7월에 오픈 소스화했다. 카산드라의 원래 버전은 마이크로소프트 직원 한 명과 전 아마존 직원 한 명이 대부분을 개발했다. 카산드라는 아마존의 다이나모에서 큰 영향을 받았는데, 다이나모는 아마존이 개척한 분산형 키/값 데이터베이스다. 카산드라는 단일 장애 지점이 없는 다이나모식 복제 모델을 구현했지만, "컬럼 패밀리"라는 강력한 데이터 모델을 추가했다.
랙스페이스에서 확장 가능한 데이터베이스를 만들어 달라고 요청한 2008년 11월부터 카산드라 프로젝트에 참여했다. 오늘날 중요한 오픈 소스 확장 데이터베이스는 대부분 평가할 수 있으므로 프로젝트에 참여하기 좋은 시기였다. 처음에는 사용 사례가 하나뿐이었지만, 카산드라의 내부 아키텍처가 가장 강력했으므로 나는 코드를 개선하고 커뮤니티를 구축하는 데 노력을 쏟았다.그 이후에 카산드라는 아파치 인큐베이터로 등록되었고, 2010년 3월에는 인큐베이터 단계를 졸업하면서 진짜 오픈 소스 성공 스토리의 주인공이 되었다. 랙스페이스, 딕, 트위터, 그외 다른 회사들은 밑바닥부터 자신만의 데이터베이스를 작성하는 대신 함께 모여 중요한 것을 만들었다.
현재는 카산드라가 페이스북의 받은편지함 검색에 사용된 초기 시스템(여전히 사용 중)보다 훨씬 더 낫다. 토니 베인 Tony Bain 의 말을 인용하자면 "트랜잭션 처리 성능의 강력한 우승자"이며, 신뢰성과 성능 확장에 대해서도 상응하는 평판을 받고 있다.
카산드라가 성숙해지면서 더 많은 주류 사용자가 관심을 보이기 시작했고, 상업적인 지원이 필요하다는 것이 분명해졌다. 그래서 매트 프페이 Matt Pfei 와 나는 2010년 4월에 립타노 Riptano 를 공동 설립했다. 카산드라 도입을 돕는 일은 매우 보람 있는 일이며, 특히 대중적으로 논의되지 않은 곳에 사용될 때가 그렇다.
또 다른 요구는 책이었다. 많은 오픈 소스 프로젝트와 마찬가지로 카산드라도 문서화가 빈약한 전통이 있다. 문서화가 개선되더라도 궁극적으로 이 책 정도의 분량이 되어야 유용할 것이다.
카산드라 개발과 배포를 예술과 과학으로 만드는 어려운 작업을 한 에벤 Eben 에게 감사한다. 여러분, 즉 독자는 체계적인 방식으로 이러한 새로운 개념을 학습할 기회를 갖게 된 것이다.
조나단 엘리스 (아파치 카산드라 프로젝트 의장, 립타노 공동창립자)

리뷰/한줄평7

리뷰

9.0 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.