1장 | 분산 컴퓨팅이란 무엇인가?
1.1 두 장군 이야기
게임으로 풀어보는 두 장군 간의 합의 문제
1.2 분산 컴퓨팅의 정의
분산 컴퓨팅의 주체
비동기적인 통신 환경
2장 | 중계자와 2단계 커밋 프로토콜
2.1 계좌 이체 문제
분산 프로세스 간 올바른 거래의 어려움
2.2 안전성과 라이브니스
안정성과 라이브니스 동시 충족 문제
확약과 합의의 어려움
2.3 2단계 커밋 프로토콜
스트로우맨 프로토콜
원자적 커밋 프로토콜
안정성 보장을 위한 조치
라이브니스 보장을 위한 조치
2단계 커밋 프로토콜 수행 예시
3장 | 시간 동기화 문제와 논리적 시계
3.1 이중화된 데이터베이스 문제
분산된 데이터베이스의 병행 갱신
3.2 시간 동기화 기법
크리스티안 알고리즘
버클리 알고리즘
네트워크 시간 프로토콜
3.3 논리적 시계
램포트 시계
이벤트의 전체 순서
3.4 램포트 시계를 활용한 비일관성 문제 해결
데이터베이스 복제 알고리즘
분산 데이터베이스 병행 갱신 문제 해결
4장 | CAP과 FLP 정리
4.1 복제 시 발생하는 네트워크 장애
비일관성의 문제
가용성의 문제
궁극적 또는 강한 일관성
일관성과 가용성 동시 충족 딜레마
4.2 합의
합의 조건
4.3 FLP 정리
분산 장치들 간의 동일값 결정 문제
장애 발생 시 결정론적 합의 알고리즘 존재 여부
4.4 무결한 프로세스 간의 합의
정족수 충족 합의
직장인 회식 여부 합의 예시
5장 | Paxos
5.1 전설
Paxos 섬의 고대 유물
5.2 장애 유형
난이도 순 장애 유형
5.3 Paxos 알고리즘
Paxos의 안전성과 라이브니스
Paxos 참여 프로세스 역할
Paxos 3단계 수행 과정
5.4 Paxos 역으로 파헤치기
Paxos 특성 분석
5.5 Paxos로 단절
현학적 표현 보다, 일상생활에 비유한 예시들을 곁들여
분산 컴퓨팅을 최대한 풀어서 해설한 책
《핵심 이론부터 프로그래밍 실습까지 분산 컴퓨팅》은 눈에 보이지는 않지만 현대 IT의 기반이 되는 분산 컴퓨팅 기술에 대해서 완전 실무적인 접근보다는 핵심 이론의 이해를 통해서 분산 컴퓨팅 체계를 설계하고 필요한 도구들을 잘 취사선택할 수 있는 능력을 배양하는 것을 학습 목표로 한다. 특히, 컴퓨터공학 또는 컴퓨터과학 전공 학부생 또는 대학원생들 대상 강의에서 이 책을 활용하는 것을 염두에 두고 집필되었으며, 백엔드, 클라우드 컴퓨팅, DevOps 등의 분야의 전문가로서의 커리어 기반을 다지면서도, 이론적 지식의 무장을 통한 차별성과 경쟁력까지 갖추길 원하는 사람들에게 도움을 줄 것이다.
Step1 간단한 예시를 통한 분산 컴퓨팅 기법 이해
Step2 예시와 함께 이해를 돕는 생각해 보는 분산 컴퓨팅 문제 구성
Step3 핵심 요약을 통한 분산 컴퓨팅의 각 문법 복습