C# 동시성 프로그래밍 2/e (스티븐 클리어리, 2019) 독후감
C# 비동기 프로그래밍에 익숙하지 않아서 책을 사서 읽었다. 비동기 기초, 비동기 스트림, TPL(task parallel library)을 활용한 병렬 처리, System.Reactive, 테스트, 컬렉션, 동기화 등 동시성 프로그래밍에 필요한 폭넓은 지식이 담겨 있다. 여기서 동시성은 ’한 번에 두 가지 이상의 작업을 수행’을 뜻한다.
상호운용 챕터가 재미있었다. 아직 API에 남아있는 낡은 패턴이라 할 수 있는 APM(asynchronous programming model, 비동기 프로그래밍 모델), EAP(event-based asynchronous pattern, 이벤트 기반 비동기 패턴) 패턴을 await와 함께 사용할 수 있는 최신 비동기 API 패턴인 TAP(task-based asynchronous pattern, 작업 기반 비동기 패턴)로 변환하는 코드가 재미있었다. 이런 것까지 다룰 줄은 몰랐는데, 유익하다고 생각했다.
오라일리(O’Reilly) cookbook 책을 처음 읽어봤다. 많은 주제가 있다. 주제마다 길어야 2~3장 분량이다. 이펙티브(effective) C#(2016)과 비교하면 cookbook은 더 예제 중심이고 사용법 위주로 알려준다. 빠르게 주제 탐색이 가능하고 예제 소스 코드가 많아 만족스럽다. 익숙하지 않을 때 다양한 주제로 코드를 많이 보는 게 도움이 된다. 익숙해진 뒤에도 세분화된 주제 덕분에 필요한 내용을 찾아서 참고할 수 있다.
C# 프로그래밍할 때, 항상 옆에 두고 필요할 때마다 다시 읽고 참고할 것 같다.