데이터 중심 애플리케이션 설계 (신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 시스템을 지탱하는 핵심 아이디어)

데이터 중심 애플리케이션 설계 (신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 시스템을 지탱하는 핵심 아이디어)

$38.93
Description
데이터는 오늘날 시스템을 설계할 때 마주치는 많은 도전 과제 중에서도 가장 중심에 있다. 확장성, 일관성, 신뢰성, 효율성, 유지보수성과 같은 해결하기 어려운 문제를 파악해야 할 뿐 아니라 관계형 데이터베이스, NoSQL 데이터스토어, 스트림 처리자 또는 일괄 처리 처리자, 메시지 브로커 등을 포함한 도구의 다양성에 압도된다. 어떤 선택이 애플리케이션에 적합한가? 이 유행어들을 얼마나 이해하고 있는가?

마틴 클레프만은 이 실용적이고 포괄적인 안내서에서 데이터를 처리하고 저장하는 다양한 기술의 장단점을 검토한다. 이 책은 여러분이 거대한 문제 공간 속을 항해하는 데 좋은 길잡이가 될 것이다. 소프트웨어는 계속 변하지만 근본 원리는 동일하다. 이 책에서 소프트웨어 엔지니어와 아키텍트는 실전에 이 개념을 어떻게 적용하는지, 그리고 현대 애플리케이션에서 어떻게 데이터를 최대한 활용하는지 배운다.
저자

마틴클레프만

저자마틴클레프만은영국캠브리지대학에서분산시스템을연구하는연구원이다.마틴은링크트인(LinkedIn)과래포티브(Rapportive)등의인터넷회사에서대규모데이터인프라를다루는소프트웨어엔지니어와사업가로일했다.그과정에서많은고생을하며몇가지를배웠고사람들이이같은실수를반복하지않기를바라는마음에이책을썼다.
마틴은정규컨퍼런스강연자이자블로거,오픈소스공헌자로활약중이다.그는심오한기술적개념은모든사람들이쉽게접근가능해야하고이해가깊으면깊을수록더좋은소프트웨어를개발하는데도움이된다고믿는다.

목차

[Part1]데이터시스템의기초

▣01장:신뢰할수있고확장가능하며유지보수하기쉬운애플리케이션
데이터시스템에대한생각
신뢰성
하드웨어결함
소프트웨어오류
인적오류
신뢰성은얼마나중요할까?
확장성
부하기술하기
성능기술하기
부하대응접근방식
유지보수성
운용성:운영의편리함만들기
단순성:복잡도관리
발전성:변화를쉽게만들기
정리
참고문헌

▣02장:데이터모델과질의언어
관계형모델과문서모델
NoSQL의탄생
객체관계형불일치
다대일과다대다관계
문서데이터베이스는역사를반복하고있나?
관계형데이터베이스와오늘날의문서데이터베이스
데이터를위한질의언어
웹에서의선언형질의
맵리듀스질의
그래프형데이터모델
속성그래프
사이퍼질의언어
SQL의그래프질의
트리플저장소와스파클
초석:데이터로그
정리
참고문헌

▣03장:저장소와검색
데이터베이스를강력하게만드는데이터구조
해시색인
SS테이블과LSM트리
B트리
B트리와LSM트리비교
기타색인구조
트랜잭션처리나분석?
데이터웨어하우징
분석용스키마:별모양스키마와눈꽃송이모양스키마
칼럼지향저장소
칼럼압축
칼럼저장소의순서정렬
칼럼지향저장소에쓰기
집계:데이터큐브와구체화뷰
정리
참고문헌

▣04장:부호화와발전
데이터부호화형식
언어별형식
JSON과XML,이진변형
스리프트와프로토콜버퍼
아브로
스키마의장점
데이터플로모드
데이터베이스를통한데이터플로
서비스를통한데이터플로:REST와RPC
메시지전달데이터플로
정리
참고문헌

[Part2]분산데이터

고부하로확장
비공유아키텍처
복제대파티셔닝
참고문헌

▣05장:복제
리더와팔로워
동기식대비동기식복제
새로운팔로워설정
노드중단처리
복제로그구현
복제지연문제
자신이쓴내용읽기
단조읽기
일관된순서로읽기
복제지연을위한해결책
다중리더복제
다중리더복제의사용사례
쓰기충돌다루기
다중리더복제토폴로지
리더없는복제
노드가다운됐을때데이터베이스에쓰기
정족수일관성의한계
느슨한정족수와암시된핸드오프
동시쓰기감지
정리
참고문헌

▣06장:파티셔닝
파티셔닝과복제
키-값데이터파티셔닝
키범위기준파티셔닝
키의해시값기준파티셔닝
쏠린작업부하와핫스팟완화
파티셔닝과보조색인
문서기준보조색인파티셔닝
용어기준보조색인파티셔닝
파티션재균형화
재균형화전략
운영:자동재균형화와수동재균형화
요청라우팅
병렬질의실행
정리
참고문헌

▣07장:트랜잭션
애매모호한트랜잭션의개념
ACID의의미
단일객체연산과다중객체연산
완화된격리수준
커밋후읽기
스냅숏격리와반복읽기
갱신손실방지
쓰기스큐와팬텀
직렬성
실제적인직렬실행
2단계잠금(2PL)
직렬성스냅숏격리(SSI)
정리
참고문헌

▣08장:분산시스템의골칫거리
결함과부분장애
클라우드컴퓨팅과슈퍼컴퓨팅
신뢰성없는네트워크
현실의네트워크결함
결함감지
타임아웃과기약없는지연
동기네트워크대비동기네트워크
신뢰성없는시계
단조시계대일기준시계
시계동기화와정확도
동기화된시계에의존하기
프로세스중단
지식,진실,그리고거짓말
진실은다수결로결정된다
비잔틴결함
시스템모델과현실
정리
참고문헌

▣09장:일관성과합의
일관성보장
선형성
시스템에선형성을부여하는것은무엇인가?
선형성에기대기
선형성시스템구현하기
선형성의비용
순서화보장
순서화와인과성
일련번호순서화
전체순서브로드캐스트
분산트랜잭션과합의
원자적커밋과2단계커밋(2PC)
현실의분산트랜잭션
내결함성을지닌합의
멤버십과코디네이션서비스
정리
참고문헌

[Part3]파생

▣10장:일괄처리
유닉스도구로일괄처리하기
단순로그분석
유닉스철학
맵리듀스와분산파일시스템
맵리듀스작업실행하기
리듀스사이드조인과그룹화
맵사이드조인일괄처리
워크플로의출력
하둡과분산데이터베이스의비교
맵리듀스를넘어
_중간상태구체화
그래프와반복처리
고수준API와언어
정리
참고문헌

▣11장:스트림처리
이벤트스트림전송
메시징시스템
파티셔닝된로그
데이터베이스와스트림
시스템동기화유지하기
변경데이터캡처
이벤트소싱
상태와스트림과불변성
스트림처리
스트림처리의사용
시간에관한추론
스트림조인
내결함성
정리
참고문헌

▣12장:데이터시스템의미래
데이터통합
파생데이터에특화된도구의결합
일괄처리와스트림처리
데이터베이스언번들링
데이터저장소기술구성하기
데이터플로주변애플리케이션설계
파생상태관찰하기
정확성을목표로
데이터베이스에관한종단간논증
제약조건강제하기
적시성과무결성
믿어라.하지만확인하라.
옳은일하기
예측분석
사생활과추적
정리
참고문헌

용어집

출판사 서평

이책에서배우는내용
◎기존에사용하고있는시스템의내부를자세히들여다보고더효율적으로사용하고운용하는방법을배운다.
◎정보에입각한의사결정이가능하게끔다양한도구의강점과약점을파악한다.
◎일관성,확장성,내결함성,복잡성에관한트레이드오프를배운다.
◎현대데이터베이스의기반이되는분산시스템연구를이해한다.
◎주요온라인서비스의배경을파악하고서비스아키텍처를배운다.