minkm***
2022-10-02

Rust 언어를 중심으로 어셈블리어, C 언어를 사용해 CPU 아토믹 처리, 소프트웨어 트랜잭셔널 메모리, async/await 등 동시성 프로그래밍과 관련된 이론적 배경부터 구현까지 설계자 입장에서 살펴본다.
보통 책을 읽을 때, 책의 제목부터 출판사의 홍보, 소개 문구 등을 통해 어느 정도 기대치 혹은 내용을 예상하며 읽게 됩니다. 그 기대에 못 미치거나 예상했던 내용보다 부족할 경우 아쉬움이 남는 독서가 되며, 기대에 걸맞고 예상대로의 내용인 경우 만족스러운 독서가 되겠지요. 드물지만 기대 이상의 내용을 담은 책을 읽게 되면 단순한 독서 그 이상의 정말 특별한 경험이 될 것입니다.
이 책 "동시성 프로그래밍"은 그야말로 기대 이상의 내용을 담은 놀라운 책입니다. 책 소개를 보고 단순히 로우 레벨(Low level)까지 다룬 비동기 프로그래밍 책 정도로 생각했는데 기분 좋게 기대를 무너트려 주었습니다. 제목 그대로 동시성 프로그래밍에 대해 A부터 Z까지, 그야말로 생각도 못했던 부분까지 빠짐없이 담고 있으며, 어려운 개념을 쉽게 설명하기 위한 적절한 비유를 통한 작가의 상세한 설명에 책을 읽는 내내 감탄을 금치 못했습니다. 굳이 왜 Rust를 다뤘을까 싶었던 선입견은 현대(Modern) 프로그래밍 패러다임에서의 동시성 프로그래밍을 같은 동시성 모델에 대해 언어별 비교를 위해 다루는 부분을 읽으며 없던 Rust 언어에 대한 관심이 생길 정도가 되었습니다. 원서가 일어다 보니 영어 번역서 보다 읽기 편한 문체로 잘 번역되어 복잡한 내용을 다루고 있음에도 한결 읽기 편해서 좋았습니다.
비동기 프로그래밍에 대해 깊이 있는 이해를 원하시는 분이라면, 이 책이 더할 나위 없는 만족감을 줄 거라 생각합니다. 강력 추천 드립니다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.