상세정보
데이터 중심 애플리케이션 설계
- 저자
- 마틴 클레프만
- 출판사
- 위키북스
- 출판일
- 2018-04-12
- 등록일
- 2022-11-15
- 파일포맷
- EPUB
- 파일크기
- 16MB
- 공급사
- 교보문고
- 지원기기
-
PC
PHONE
TABLET
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
데이터는 오늘날 시스템을 설계할 때 마주치는 많은 도전 과제 중에서도 가장 중심에 있다. 확장성, 일관성, 신뢰성, 효율성, 유지보수성과 같은 해결하기 어려운 문제를 파악해야 할 뿐 아니라 관계형 데이터베이스, NoSQL 데이터스토어, 스트림 처리자 또는 일괄 처리 처리자, 메시지 브로커 등을 포함한 도구의 다양성에 압도된다. 어떤 선택이 애플리케이션에 적합한가? 이 유행어들을 얼마나 이해하고 있는가?
마틴 클레프만은 이 실용적이고 포괄적인 안내서에서 데이터를 처리하고 저장하는 다양한 기술의 장단점을 검토한다. 이 책은 여러분이 거대한 문제 공간 속을 항해하는 데 좋은 길잡이가 될 것이다. 소프트웨어는 계속 변하지만 근본 원리는 동일하다. 이 책에서 소프트웨어 엔지니어와 아키텍트는 실전에 이 개념을 어떻게 적용하는지, 그리고 현대 애플리케이션에서 어떻게 데이터를 최대한 활용하는지 배운다.
저자소개
저자 : 마틴 클레프만
저자 마틴 클레프만은 영국 캠브리지 대학에서 분산 시스템을 연구하는 연구원이다. 마틴은 링크트인(LinkedIn)과 래포티브(Rapportive) 등의 인터넷 회사에서 대규모 데이터 인프라를 다루는 소프트웨어 엔지니어와 사업가로 일했다. 그 과정에서 많은 고생을 하며 몇 가지를 배웠고 사람들이 이 같은 실수를 반복하지 않기를 바라는 마음에 이 책을 썼다.
마틴은 정규 컨퍼런스 강연자이자 블로거, 오픈소스 공헌자로 활약 중이다. 그는 심오한 기술적 개념은 모든 사람들이 쉽게 접근 가능해야 하고 이해가 깊으면 깊을수록 더 좋은 소프트웨어를 개발하는 데 도움이 된다고 믿는다.
역자 : 정재부
역자 정재부는 현재 네이버에서 다양한 분산 오픈소스 솔루션을 이용한 데이터 처리 플랫폼을 개발, 운영하고 있다. 하둡, 슬라이더 기반의 멀티테넌트 분산 플랫폼 구축과 스톰, 스팍을 이용한 데이터 처리 프레임워크 개발에 관심이 많다. 《빅데이터: 람다 아키텍처로 알아보는 실시간 빅데이터 구축의 핵심 원리와 기법》(정보문화사, 2016)을 공역했다.
역자 : 김영준
역자 김영준은 아주대학교에서 컴퓨터공학을 전공했다. 네이버에서 검색 서비스, 모니터링 시스템, 증분 검색 솔루션을 개발했다. 현재는 딥러닝에 기반한 이미지 검색 기술을 연구하고 있다. 《빅데이터: 람다 아키텍처로 알아보는 실시간 빅데이터 구축의 핵심 원리와 기법》(정보문화사, 2016)을 공역했다.
역자 : 이도경
역자 이도경은 서울대학교 컴퓨터 공학부를 졸업했고 동 대학원에서 석사 학위를 받았다. 네이버에서 검색 시스템 개발과 시스템 운영을 경험했고 대규모 실시간 처리 시스템 설계와 개발 및 시스템 운영을 했다. 지금은 이전 빅데이터 처리 경험을 바탕으로 대규모 실시간 추천 시스템을 설계, 개발, 운영하고 있다. 《빅데이터: 람다 아키텍처로 알아보는 실시간 빅데이터 구축의 핵심 원리와 기법》(정보문화사, 2016)을 공역했다.
목차
[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)
현실의 분산 트랜잭션
내결함성을 지닌 합의
멤버