길벗·이지톡

도서 IT대학교재 컴퓨터 전공

현학적 표현 보다, 일상생활에 비유한 예시들을 곁들여

분산 컴퓨팅을 최대한 풀어서 해설한 책

 

핵심 이론부터 프로그래밍 실습까지 분산 컴퓨팅은 눈에 보이지는 않지만 현대 IT의 기반이 되는 분산 컴퓨팅 기술에 대해서 완전 실무적인 접근보다는 핵심 이론의 이해를 통해서 분산 컴퓨팅 체계를 설계하고 필요한 도구들을 잘 취사선택할 수 있는 능력을 배양하는 것을 학습 목표로 한다.
특히, 컴퓨터공학 또는 컴퓨터과학 전공 학부생 또는 대학원생들 대상 강의에서 이 책을 활용하는 것을 염두에 두고 집필되었으며, 백엔드, 클라우드 컴퓨팅, DevOps 등의 분야의 전문가로서의 커리어 기반을 다지면서도, 이론적 지식의 무장을 통한 차별성과 경쟁력까지 갖추길 원하는 사람들에게 도움을 줄 것이다.

 

Step1 간단한 예시를 통한 분산 컴퓨팅 기법 이해

 

Step2 예시와 함께 이해를 돕는 생각해 보는 분산 컴퓨팅 문제 구성

 

 

 

Step3 핵심 요약을 통한 분산 컴퓨팅의 각 문법 복습

목차

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로 단절된 두뇌 문제 해결

2PC 프로토콜과 TC 장애

두뇌 단절 문제

Paxos에 의한 리더 선정

 

6장 | 암복호화와 디지털 서명

6.1 고전적 암호

시저 암호

6.2 RSA 알고리즘

암호화

복호화

공개키와 비밀키

6.3 디지털 서명

위변조 방지

인증 기관의 필요성

 

7장 | 비잔틴 장애와 합의

7.1 비잔틴 장애 문제

합의 과정 교란

7.2 비잔틴 장애 내성 합의 알고리즘

백업 서버 복제 문제

디지털 서명 활용

사전 준비 단계와 준비 단계

확약 단계

PBFT 알고리즘

 

8장 | RAFT

8.1 로그 복제의 문제

프라이머리 서버 선정 문제

8.2 리더 선정 방법

RAFT 참여자 역할

주기적 하트비트

임기의 개념

선거 과정

RAFT의 안전성과 라이브니스

8.3 로그 관리

로그 구조

리더 지시 실패 예시

안전한 리더 선정

로그 정정 방법

 

9장 | 블록체인

9.1 이중 지불 사기꾼 잡기 게임

게임 규칙

게임 수행 예시

이중 지불 문제

9.2 블록체인 기반 비트코인

비트코인 구조

비트코인 양도 과정

비트코인 트랜잭션 검증 과정

9.3 블록체인과 가상화폐의 한계

블록체인 응용

저장 공간 활용 한계

탈중앙화 검증 방식의 한계

검증 속도의 문제

 

10장 | 벡터 시계와 스냅샷 찍기

10.1 단체 메시징 애플리케이션 문제

메시지들의 인과관계 파악 문제

램포트 시계의 한계

10.2 벡터 시계

벡터 시각 갱신

벡터 시각에 따른 이벤트 인과관계

벡터 시계를 활용한 안전한 메시지 열람 방법

10.3 전역 스냅샷

전역 스냅샷의 필요성

올바르지 않은 전역 스냅샷 예시

마커 기반 전역 스냅샷 찍는법

정확한 순서 관계 기록의 보장

 

11장 | 성능 모델링과 병렬 처리

11.1 큐잉 네트워크 모델

서비스센터 모델

서비스센터 성능 지표

성능 지표 간의 관계

11.2 성능 법칙

가용률의 법칙

리틀의 법칙

강제 플로우의 법칙

11.3 맵리듀스 기반 병렬 처리

웹페이지 검색의 문제

맵리듀스 작동 원리

하둡 생태계

 

12장 | 분산 데이터베이스

12.1 장애 시 확장성 관리 문제의 고민

단순 해싱의 문제점

데이터 완전 재배치 문제

12.2 일관적 해싱

해시 링

서버별 해시값 담당 범위 배정법

데이터 레코드 배치 방법

일관된 해시의 장점

12.3 분산 해시 테이블

중앙 디렉토리 서비스 관리 문제

Chord 알고리즘

12.4 가상 노드 기법

노드 간 불균형 문제 해결

DHT의 활용

 

13장 | Publish/Subscribe

13.1 Publish/Subscribe 패러다임

Publisher

Subscriber

시공간의 분리

13.2 Publish/Subscribe의 작동 원리

관심사 매칭

콘텐츠 기반 라우팅

13.3 Publish/Subscribe의 응용

Service Choreography

ESB

 

14장 | 보안 관제

14.1 목적에 따른 사이버 공격 유형

서비스 장애 공격

기밀 정보 탈취 및 위변조

14.2 공격 패턴 정의

스노트 문법

스노트 규칙 예시

스노트 운영 모드

스노트의 문제점과 한계

ATT&CK 기반 행위분석

킬체인

14.3 데이터 기반 공격 패턴 분석과 탐지 체계

SIEM

연관 분석

인과관계 분석

시계열 분석

그래프 분석

평판 분석

문맥 분석

 

15장 | 기밀 보호

15.1 영지식 증명

직관적 영지식 증명

Fiat-Shamir 프로토콜

Schnorr 프로토콜

Fiat-Shamir 휴리스틱

15.2 다자간 연산

누가 더 부자인가?

안전 회로 평가

15.3 동형암호

직관적 예시

Paillier 암호화

15.4 기밀 보호 Pub/Sub

콘텐츠 기반 Pub/Sub의 딜레마

재암호화 동형암호의 활용

15.5 분산학습

인공신경망 개념

연합학습

분할학습

 

16장 | Golang RPC와 DevOps

16.1 Golang 기초

Go의 특성

Go 기본 문법

16.2 RPC로 메시지 보내기

RPC 서버

RPC 클라이언트

16.3 암호화 메시지 디지털 서명

복호화 서버

디지털 서명 클라이언트

16.4 분산 시스템 구동 환경

온프레미스

클라우드

모바일 단말

16.5 DevOps

폭포수 모델

애자일 모델

CI/CD

도커 컨테이너

젠킨스

쿠버네티스

DevOps 정리

 

도판 목록

찾아보기

 

더보기접기

저자&기여자

ㆍ지은이 윤영

소개
윤 영(Young Yoon) | virtuoso.yoon@gmail.com University of Texas at Austin 컴퓨터과학전공 학사, 석사, University of Toronto 컴퓨터공학전공 박사, Platform Computing, Telus, IBM T.J.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.