<7가지 동시성 모델(한빛미디어)>은 소프트웨어의 속도와 안전성을 향상시키기 위한 7가지 방법을 소개합니다.
1. 왜 읽어야 하나요?
과거에는 단순히 더 성능이 좋은 하드웨어를 구매함으로써 소프트웨어의 성능을 개선할 수 있었습니다. 하지만 현대 기술로는 CPU 속도 자체를 빠르게 하는 것에 한계에 봉착하여 속도를 올리는 대신 CPU를 2개, 4개 혹은 8개 이상을 넣어 동시에 처리할 수 있는 연산의 양을 늘리는 방향으로 나아가고 있습니다. 다시 말해서, 앞으로는 동시성과 병렬성을 활용해야 고품질의 소프트웨어 개발이 가능합니다. 높은 성능의 확장성 있는 서비스를 제공하고 싶나요? 당신은 이 책에서 소개하는 동시성과 병렬성을 위한 새로운 개념을 반드시 익혀야 합니다.
2. 이 책의 장단점은 무엇인가요?
이 책의 가장 큰 장점은 전통적인 스레드와 잠금장치부터 본격적으로 실무에서 사용하고 있는 함수형 프로그래밍부터 클로저, 액터 모델, 순차 프로세스 통신, 데이터 병렬성, 람다 아키텍처를 한 권으로 빠르게 훑을 수 있다는 것입니다.
그렇다면 단점은 무엇일까요? 다양한 내용을 빠르게 훑기 때문에 하나의 주제에 심도있게 들어가지 않습니다. 게다가 책에서 나오는 각종 예제를 실행할 수 있는 환경은 독자가 알아서 구축해야 합니다. 국내에서는 아직 많이 사용하고 있지 않은 클로저(Clojure) 라는 언어로 대부분의 예제를 설명한다는 것 또한 장벽일 수 있습니다.
그러나 책을 차근차근 읽다보니 새로운 언어에 조금씩 익숙해질 수 있었습니다. 비록 책에 나온 예제를 완벽히 이해할 수는 없었지만 적어도 각 장에서 소개하는 패러다임에 대해서는 충분한 파악이 가능했습니다.
3. 총평
저에게는 쉽지 않은 책이었습니다. 하지만, 100% 이해하겠다는 마음이 아닌 새로운 개념을 받아들인다는 자세로 책을 읽었더니 조금이나마 저의 지식을 넓힐 수 있었습니다. 앞으로 클로저나 엘릭서 혹은 고(Go) 등의 함수형 언어가 추구하는 철학을 배워서 어떤 문제를 바라볼 때 더 다양한 관점에서 해결책을 강구할 수 있도록 제 자신을 더 단련하고 싶습니다. 저자의 한 마디로 리뷰를 마치겠습니다.
"내가 확신을 가지고 말할 수 있는 것은 앞으로 병렬성과 동시성이 점점 더 많이 중요해질 것이라는 점이다."