j03***
2022-04-11

Rust 언어를 중심으로 어셈블리어, C 언어를 사용해 CPU 아토믹 처리, 소프트웨어 트랜잭셔널 메모리, async/await 등 동시성 프로그래밍과 관련된 이론적 배경부터 구현까지 설계자 입장에서 살펴본다.
# 다른 책과의 차별성
요즘은 너무 좋은 고수준 프로그래밍 언어들이 아주 많이 발전했을뿐더러, 책도 시대에 맞춰 좀 더 실용적이거나 인기가 많은 언어나 분야들을 다룬다. 한창 성장해야 할 귀여운 경력을 가지고 있는 C 개발자인 나는 좀 더 나은 개발자가 되기 위해서 서점에서 책을 찾아보지만, 보통 C언어와 관련된 서적이라면 내 나이보다 오래된 서적들을 만나거나, 그게 아니면 겉표지와 내용은 깔끔하지만, 너무 기초적인 내용이 담긴 서적들이어서 아쉬워하기 마련이다. 그러던 중 만난 '동시성 프로그래밍'은 한 마디로 적당했다. 발매일이 일주일도 채 지나지 않았다. 신선하고, 깔끔하면서도 실용적이다. 다소 크게 신선한 주제나 새로운 분야는 아니지만, 어느 정도의 지식수준과 똑같은 개발 일상에 지쳐있는 나에게는 신선하고 새로운 지식이 되어준다. 어셈블리와 알고리즘도 접할 수 있다. 광범위한 주제를 가지고 있기는 하지만 아주 적당한 정도로 잘 정리되어 있다. 또한, Rust를 다루며 설명한 내용이 많다 보니, 자연스레 Rust라는 언어에 흥미가 생긴다. 물론 혼자 구현하고 고민해보는 개발도 좋지만, 다른 사람의 코드와 알고리즘을 접해보고 문제점을 살펴본다는 것은 꽤 빠른 발전 방법인 듯 하다.
추가로 코드 예제를 다운로드 할 수 있다고 한다.
(지금은 페이지를 찾을 수 없다고 나오는데.. 깃헙 확인 해주시면 좋을 것 같다 ...)
# 이 책에서 다루지 않는 언어의 개발자라면?
C나 Rust를 다루지 않더라도 추천해주고싶다. 위에서 말했던 것처럼 요즘은 너무 발전하고 개발하기도 좋은 세상이지만, 그렇기 때문에 더 알고 있어야한다고 생각한다. '다양한 장치가 네트워크로 연결되면서 프로그래밍 기술을 요하는 소프트웨어가 폭발적으로 늘어났음에도 불구하고 동시성 프로그래밍에 관한 전반적인 학습을 할 수 없다는 점은 매우 걱정된다.' 책 도입부에서 확인할 수 있는 말인데, 깊게 공감한다. C를 왜 배워야 하냐는 동기의 질문에 교수님이 답변해주셨던 적이 있다. 우리가 사용하는 프로그래밍의 기초이자 근본이 되는 것이니까. 결국은 이해하고 있어야 어떤 프로그래밍을 하는 사람이 되더라도 좀 더 효율적인, 좀 더 적합한 코드를 만들어 낼 수 있을 거라는 말씀을 하셨었다. 동시성 프로그램의 개념도 비슷하지 않을까? 단순 코더가 되지 않기 위해 오늘도 공부하는 사람들을 위해 한 권쯤 가지고 있으면 도움이 될거라고 감히 추천해본다.
* 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.