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