이미 소장하고 있다면 판매해 보세요.
|
1장. 동시성 소개
__무어의 법칙, 웹 스케일, 그리고 혼란 __동시성이 어려운 이유 ____레이스 컨디션 ____원자성 ____메모리 접근 동기화 __데드락, 라이브락, 기아 상태 ____데드락 ____라이브락 ____기아 상태 __동시실행 안전성 판단 __복잡성 속의 단순함 2장. 코드 모델링: 순차적인 프로세스간의 통신 __동시성과 병렬성의 차이 __CSP란 무엇인가? __동시성을 지원하는 언어의 장점 __Go의 동시성에 대한 철학 3장. Go의 동시성 구성 요소 __고루틴 __sync 패키지 ____WaitGroup ____Mutex와 RWMutex ____Cond ____Once ____Pool __채널 __select 구문 __GOMAXPROCS 레버 __결론 4장. Go의 동시성 패턴 __제한 __for-select 루프 __고루틴 누수 방지 __or-채널 __에러 처리 __파이프라인 __파이프라인 구축의 모범 사례 ____몇몇 유용한 생성기 __팬 아웃, 팬 인 __or-done 채널 __tee 채널 __bridge 채널 __대기열 사용 __context 패키지 __요약 5장. 확장에서의 동시성 __에러 전파 __시간 초과 및 취소 __복제된 요청 __속도 제한 __비정상 고루틴의 치료 __요약 6장. 고루틴과 고 런타임 __작업 가로채기 ____작업 또는 연속 가로채기 __이 모든 것을 개발자에게 보여주는 방법 __결론 부록 __고루틴 에러 분석 __레이스 탐지 __pprof |
이상식의 다른 상품
|
이 책의 구성은 다음과 같다.
1장, ‘동시성 소개’에서는 역사적인 관점에서 동시성이 왜 중요한 기능이 됐는지 알아보고, 동시성 프로그래밍을 정확하게 작성하는 것이 어려운 근본 원인에 대해 이야기한다. 그리고 Go 언어가 어떻게 이런 어려움을 덜어주는지 간략하게 다룬다. 만약 동시성에 대한 실무 지식이 있거나 Go의 동시성 기본 요소를 사용하는 방법에 대한 기술적인 측면에 관심이 있다면 이 장을 건너 뛰어도 무방하다. 2장, ‘코드 모델링: 순차적인 프로세스 간의 통신’에서는 Go 언어가 지금과 같이 디자인되는 데 동기를 부여한 요소를 다룬다. 이를 이해하면 Go 언어 커뮤니티에서 다른 사람과 대화하는 데 도움이 된다. 또한 Go 언어가 동작하는 원리를 이해하는 틀을 잡는 데도 도움이 된다. 3장, ‘Go의 동시성 구성요소’에서는 Go의 동시성 기본 요소의 문법을 깊이 살펴본다. 또한 Go의 메모리 접근 동기화를 담당하는 sync 패키지도 알아본다. 이전에 Go 언어에서 동시성 프로그래밍을 해본 적이 없지만 바로 시작하기를 원한다면 이 장부터 읽으면 된다. 3장에서는 Go에서의 기본적인 동시성 코드 작성에 대한 내용, 다른 언어 및 동시성 모델의 개념과의 비교가 섞여 있다. 꼭 다른 언어나 동시성 모델에서의 개념까지 이해할 필요는 없지만, 이 개념들은 Go의 동시성에 대한 완전한 이해를 돕는다. 4장, ‘Go의 동시성 패턴’에서는 Go의 동시성 기본 요소들이 합쳐져 어떻게 패턴을 형성하는지 살펴본다. 이 패턴들은 문제를 해결하는 데 도움이 될 뿐만 아니라, 동시성 기본 요소를 조합하는 데서 오는 이슈를 해결하는 데 도움이 된다. Go 언어로 동시성 프로그램을 작성해본 경험이 있다면 4장부터 읽는 것도 도움이 될 것이다. 5장, ‘확장에서의 동시성’에서는 그동안 배웠던 패턴을 조합해서 보다 큰 프로그램, 서비스, 분산 시스템에서 일반적으로 사용하는 큰 패턴을 구성해본다. 6장, ‘고루틴과 Go 런타임’에서는 Go의 런타임이 고루틴을 스케줄링하는 방법을 설명한다. 6장은 Go 런타임의 내부를 이해하고자 하는 독자들을 위한 내용을 담고 있다. ‘부록’에서는 동시성 프로그램을 간단히 작성해보고 보다 쉽게 작성하고 디버깅할 수 있도록 도와주는 여러 가지 도구들을 나열한다. |