데이터 중심 애플리케이션 설계 pdf 다운로드를 무료로 제공합니다 데이터는 오늘날 시스템을 설계할 때 마주치는 많은 도전 과제 중에서도 가장 중심에 있다. 확장성, 일관성, 신뢰성, 효율성, 유지보수성과 같은 해결하기 어려운 문제를 파악해야 할 뿐 아니라
관련 책 pdf 모음
책 소개
관계형 데이터베이스, NoSQL 데이터스토어, 스트림 처리자 또는 일괄 처리 처리자, 메시지 브로커 등을 포함한 도구의 다양성에 압도된다. 어떤 선택이 애플리케이션에 적합한가? 이 유행어들을 얼마나 이해하고 있는가? 마틴 클레프만은 이 실용적이고 포괄적인 안내서에서 데이터를 처리하고 저장하는 다양한 기술의 장단점을 검토한다. 이 책은 여러분이 거대한 문제 공간 속을 항해하는 데 좋은 길잡이가 될 것이다. 소프트웨어는 계속 변하지만 근본 원리는 동일하다. 이 책에서 소프트웨어 엔지니어와 아키텍트는 실전에 이 개념을 어떻게 적용하는지, 그리고 현대 애플리케이션에서 어떻게 데이터를 최대한 활용하는지 배운다.
데이터 중심 애플리케이션 설계 pdf
[Part 1] 데이터 시스템의 기초
▣ 01장: 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션
데이터 시스템에 대한 생각
신뢰성
하드웨어 결함
소프트웨어 오류
인적 오류
신뢰성은 얼마나 중요할까?
확장성
부하 기술하기
성능 기술하기
부하 대응 접근 방식
유지보수성
운용성: 운영의 편리함 만들기
단순성: 복잡도 관리
발전성: 변화를 쉽게 만들기
정리
참고 문헌
▣ 02장: 데이터 모델과 질의 언어
관계형 모델과 문서 모델
NoSQL의 탄생
객체 관계형 불일치
다대일과 다대다 관계
문서 데이터베이스는 역사를 반복하고 있나?
관계형 데이터베이스와 오늘날의 문서 데이터베이스
데이터를 위한 질의 언어
웹에서의 선언형 질의
맵리듀스 질의
그래프형 데이터 모델
속성 그래프
사이퍼 질의 언어
SQL의 그래프 질의
트리플 저장소와 스파클
초석: 데이터로그
정리
참고 문헌
▣ 03장: 저장소와 검색
데이터베이스를 강력하게 만드는 데이터 구조
해시 색인
SS테이블과 LSM 트리
B 트리
B 트리와 LSM 트리 비교
기타 색인 구조
트랜잭션 처리나 분석?
데이터 웨어하우징
분석용 스키마: 별 모양 스키마와 눈꽃송이 모양 스키마
칼럼 지향 저장소
칼럼 압축
칼럼 저장소의 순서 정렬
칼럼 지향 저장소에 쓰기
집계: 데이터 큐브와 구체화 뷰
정리
참고 문헌
▣ 04장: 부호화와 발전
데이터 부호화 형식
언어별 형식
JSON과 XML, 이진 변형
스리프트와 프로토콜 버퍼
아브로
스키마의 장점
데이터플로 모드
데이터베이스를 통한 데이터플로
서비스를 통한 데이터플로: REST와 RPC
메시지 전달 데이터플로
정리
참고 문헌
[Part 2] 분산 데이터
고부하로 확장
비공유 아키텍처
복제 대 파티셔닝
참고 문헌
▣ 05장: 복제
리더와 팔로워
동기식 대 비동기식 복제
새로운 팔로워 설정
노드 중단 처리
복제 로그 구현
복제 지연 문제
자신이 쓴 내용 읽기
단조 읽기
일관된 순서로 읽기
복제 지연을 위한 해결책
다중 리더 복제
다중 리더 복제의 사용 사례
쓰기 충돌 다루기
다중 리더 복제 토폴로지
리더 없는 복제
노드가 다운됐을 때 데이터베이스에 쓰기
정족수 일관성의 한계
느슨한 정족수와 암시된 핸드오프
동시 쓰기 감지
정리
참고 문헌
▣ 06장: 파티셔닝
파티셔닝과 복제
키-값 데이터 파티셔닝
키 범위 기준 파티셔닝
키의 해시값 기준 파티셔닝
쏠린 작업부하와 핫스팟 완화
파티셔닝과 보조 색인
문서 기준 보조 색인 파티셔닝
용어 기준 보조 색인 파티셔닝
파티션 재균형화
재균형화 전략
운영: 자동 재균형화와 수동 재균형화
요청 라우팅
병렬 질의 실행
정리
참고 문헌
▣ 07장: 트랜잭션
애매모호한 트랜잭션의 개념
ACID의 의미
단일 객체 연산과 다중 객체 연산
완화된 격리 수준
커밋 후 읽기
스냅숏 격리와 반복 읽기
갱신 손실 방지
쓰기 스큐와 팬텀
직렬성
실제적인 직렬 실행
2단계 잠금(2PL)
직렬성 스냅숏 격리(SSI)
정리
참고 문헌
▣ 08장: 분산 시스템의 골칫거리
결함과 부분 장애
클라우드 컴퓨팅과 슈퍼컴퓨팅
신뢰성 없는 네트워크
현실의 네트워크 결함
결함 감지
타임아웃과 기약 없는 지연
동기 네트워크 대 비동기 네트워크
신뢰성 없는 시계
단조 시계 대 일 기준 시계
시계 동기화와 정확도
동기화된 시계에 의존하기
프로세스 중단
지식, 진실, 그리고 거짓말
진실은 다수결로 결정된다
비잔틴 결함
시스템 모델과 현실
정리
참고 문헌
▣ 09장: 일관성과 합의
일관성 보장
선형성
시스템에 선형성을 부여하는 것은 무엇인가?
선형성에 기대기
선형성 시스템 구현하기
선형성의 비용
순서화 보장
순서화와 인과성
일련번호 순서화
전체 순서 브로드캐스트
분산 트랜잭션과 합의
원자적 커밋과 2단계 커밋(2PC)
현실의 분산 트랜잭션
내결함성을 지닌 합의
멤버십과 코디네이션 서비스
정리
참고 문헌
[Part 3] 파생
▣ 10장: 일괄 처리
유닉스 도구로 일괄 처리하기
단순 로그 분석
유닉스 철학
맵리듀스와 분산 파일 시스템
맵리듀스 작업 실행하기
리듀스 사이드 조인과 그룹화
맵 사이드 조인 일괄 처리
워크플로의 출력
하둡과 분산 데이터베이스의 비교
맵리듀스를 넘어
_중간 상태 구체화
그래프와 반복 처리
고수준 API와 언어
정리
참고 문헌
▣ 11장: 스트림 처리
이벤트 스트림 전송
메시징 시스템
파티셔닝된 로그
데이터베이스와 스트림
시스템 동기화 유지하기
변경 데이터 캡처
이벤트 소싱
상태와 스트림과 불변성
스트림 처리
스트림 처리의 사용
시간에 관한 추론
스트림 조인
내결함성
정리
참고 문헌
▣ 12장: 데이터 시스템의 미래
데이터 통합
파생 데이터에 특화된 도구의 결합
일괄 처리와 스트림 처리
데이터베이스 언번들링
데이터 저장소 기술 구성하기
데이터플로 주변 애플리케이션 설계
파생 상태 관찰하기
정확성을 목표로
데이터베이스에 관한 종단 간 논증
제약 조건 강제하기
적시성과 무결성
믿어라. 하지만 확인하라.
옳은 일 하기
예측 분석
사생활과 추적
정리
참고 문헌
용어집