길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스

grokking concurrency!

복잡한 수식과 전문 용어를 몰라도 괜찮다! 읽기만 해도 동시성을 이해할 수 있다!

동시성은 프로그램을 독립적으로 실행하도록 분리해 동시에 처리하는 방식이며, 이를 구현하려면 복잡성, 병렬성, 스레드, 프로세스, 멀티태스킹, 코루틴처럼 다양한 기술과 개념을 알고 적재적소에 사용할 줄 알아야 한다. 이 책은 어렵게만 느껴지던 동시성을 실제 생활에서 흔히 볼 수 있는 예와 흥미로운 일러스트로 설명한다. 특정 프로그래밍 언어나 구현에 국한해 설명하지 않으며, 좀 더 근본적인 내용인 개념과 원칙을 학습하도록 도와준다. 특히 확실하게 이해하기 위해 복잡한 수식보다는 시각적인 다이어그램으로 개념을 쉽게 설명하며, 다양한 이야기로 독자의 흥미를 이끈다. 이 책을 읽고 나면 동시성에 대해 전체적인 그림을 그릴 수 있을 것이다.

 

목차

PART I 문어 오케스트라: 동시성 교향곡 입문하기

 

CHAPTER 1 동시성이란 무엇인가

1.1 동시성의 중요성

1.2 동시성의 계층

1.3 이 책에서 배우게 될 내용

 

CHAPTER 2 순차 실행과 병렬 실행

2.1 돌아보기: 프로그램이란 무엇인가?

2.2 순차 실행

2.3 순차 컴퓨팅

2.4 병렬 실행

2.5 병렬 컴퓨팅을 위해 필요한 것

2.6 병렬 컴퓨팅

2.7 암달의 법칙

2.8 구스타프슨의 법칙

2.9 동시성 vs. 병렬성

 

CHAPTER 3 컴퓨터의 동작 원리

3.1 프로세서

3.2 런타임 시스템

3.3 컴퓨터 시스템의 구조

3.4 동시 하드웨어의 여러 수준

 

CHAPTER 4 동시성을 구현하는 재료

4.1 동시성 프로그래밍의 단계

4.2 프로세스

4.3 스레드

 

CHAPTER 5 프로세스 간 통신

5.1 다양한 통신 방식

5.2 스레드 풀 패턴

5.3 패스워드 크랙하기: 파트 2

 

PART II 동시성을 다루는 촉수의 종류: 멀티태스킹, 분해, 동기화

 

CHAPTER 6 멀티태스킹

6.1 CPU 중심과 입출력 중심

6.2 멀티태스킹이 필요한 이유

6.3 멀티태스킹: 조감도

6.4 멀티태스킹 환경

 

CHAPTER 7 작업 분해하기

7.1 의존 관계 분석하기

7.2 작업 분해

7.3 작업 분해: 파이프라인 패턴

7.4 데이터 분해

7.5 분해된 작업의 크기 결정하기

 

CHAPTER 8 동시성과 관련된 문제 해결하기: 경쟁 조건과 동기화

8.1 공유 자원

8.2 경쟁 조건

8.3 동기화

 

CHAPTER 9 동시성과 관련된 문제 해결하기: 교착 상태와 기아 상태

9.1 철학자들의 만찬 문제

9.2 데드락

9.3 라이브락

9.4 기아 상태

9.5 동기화 설계하기

9.6 그 외의 주제

 

PART III 비동기적으로 움직이는 문어들: 여러 판의 피자를 동시에 만들기 

 

CHAPTER 10 논블로킹 I/O

10.1 분산 컴퓨팅의 세계

10.2 클라이언트-서버 모델

10.3 피자 주문 서비스

10.4 블로킹 I/O

10.5 논블로킹 I/O

 

CHAPTER 11 이벤트 기반 동시성

11.1 이벤트란?

11.2 콜백

11.3 이벤트 반복문

11.4 입출력 멀티플렉싱

11.5 이벤트 기반으로 구현된 피자 서버

11.6 리액터 패턴

11.7 메시지 전달 동기화하기

11.8 여러 가지 입출력 모델

 

CHAPTER 12 비동기 통신

12.1 비동기성이 필요한 이유

12.2 비동기 프로시저 호출

12.3 협동형 멀티태스킹

12.4 퓨처 객체

12.5 협동적 멀티태스킹을 적용한 피자 서버

12.6 비동기 피자 식당

12.7 결론: 비동기 모델

 

CHAPTER 13 실전: 동시적 애플리케이션 작성하기

13.1 그래서 동시성이 뭐였더라?

13.2 포스터 기법

13.3 행렬 곱 연산

13.4 분산 단어 세기

 

더보기접기

저자&기여자

ㆍ지은이 키릴 보브로프

소개
고참 소프트웨어 엔지니어로, 고부하 애플리케이션 설계와 개발에 일가견이 있다. 현재는 데이터 엔지니어링에 대해 열정을 보이며, 전 세계 기업을 위한 첨단 데이터 엔지니어링 프랙티스를 개발한다. 개인 기술 블로그도 운영한다.

ㆍ옮긴이 심효섭

소개
연세대학교 문헌정보학과를 졸업하고 모교 중앙도서관과의 인연으로 도서관 솔루션 업체에서 일하면서 개발을 시작했다. 네이버에서 웹 서비스 개발 업무를 맡았으며, 웹 서비스 외에 머신러닝 공부도 꾸준히 하고 있다. 최근 관심사는 회사에 속하지 않고도 지속 가능한 삶이다. 옮긴 책으로는 『쿠버네티스 교과서』(길벗, 2023), 『도커 교과서』(길벗, 2022), 『그림과 실습으로 배우는 도커&쿠버네티스』(위키북스, 2022), 『비전 시스템을 위한 딥러닝』(한빛미디어, 2021), 『도메인 주도 설계 철저 입문』(위키북스, 2020) 등 20여 종이 있다.

연관 프로그램

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