phoenix***
2016-09-01

멀티코어, 빅데이터, 분산 컴퓨팅을 다루는 데는 동시성과 병렬성이 핵심이다. 이 책은 동시성 프로그래밍의 핵심 내용을 다루며, 액터나 함수형 프로그래밍 같은 기술이 전통적인 스레드와 잠금장치 문제를 어떻게 풀 수 있는지 알려준다. GPGPU, 맵리듀스, 스트림 처리 등을 활용하여 코드의 성능, 확장성, 회복력을 향상해보자.
이 책의 원서는 작년에 처음 접했는데 바쁘다는 핑계로 보지 않고 있다가 한빛리더스 도서리스트에 마침 번역서가 떴길래 신청했다.
빅데이터 관련 업무를 오랬동안 해왔기 때문에 병렬처리는 어느정도 알고 있다고 생각했는데 이 책을 보면서 의외로 놓친 부분을 파악할 수 있었고 어렴풋하던 부분을 명확히 해주었다.
빅데이터가 이슈가 되면서 하둡, 스파크, 스칼라 관련 서적들이 굉장히 많이 쏟아져 나왔지만 중급 이상 개발자가 되기 위해서는 그 근간에 있는 멀티코어, 멀티쓰레딩, 동시성, 병렬성 등의 이해가 필요하다. 또한 시스템이 점점 복잡해지고 있기 때문에 빅데이터가 아니더라도 마이크로 아키텍쳐, 액터 모델, 어싱크 등의 용어가 종종 언급되는 업무를 하고 있다면 한 번쯤 읽어두면 좋다.
사실 이 내용만으로도 두꺼운 전공 서적을 만들 수 있을 정도로 복잡할 수 있는 내용인데 이 책에서는 클로저를 이용하여 7주 과정으로 쉽게쉽게 설명하고 있다. 단 오히려 이점이 단점이 되기도 한다. 클로저 위주로 설명하고 있지만 클로저는 한국 개발자가 가장 흔히 알고 있는 자바와는 (java8에는 일부 개념이 들어갔지만) 다른 문법과 개념(특히 함수형 언어의 특징들)을 많이 가지고 있기에 이해하기 어려울 수 있다. (개인적으로 익숙한 scala였으면 하는 바램은 있었다.) 한가지 조언을 하자면 이 책은 게임 튜토리얼처럼 한단계 한단계 진행해나가는 형태로 진행하고 있기 때문에 디테일한 코드보다는 이 코드를 통해 설명하고자 하는 내용 위주로 파악하면 읽기에 조금이라도 수월해질 수 있을 것이다.