sungamyan***
2016-10-04

객체지향 언어에 길든 개발자들에게 예제를 통해 함수형으로 ‘생각’하는 법을 깨닫게 해주는 책. 스칼라 같은 함수형 언어의 수요가 늘고 있지만 자바 같은 객체지향에 익숙한 개발자들은 함수형 패러다임으로 넘어가는 데 어려움을 겪고 있다. 단순히 새 언어 문법을 익히는 것이 아니라 사고방식 자체를 바꿔야 하기 때문이다. 이 책은 자바 8, 스칼라, 클로저, 그루비 예제를 통해 객체지향 개발자가 함수형으로 사고를 전환하고 시야를 넓히는 일을 돕는다. 익숙한 사
한빛미디어 한빛리더스 3기 활동의 두 번째 도서는 닐 포드의 <함수형 사고(Functional Thinking)>라는 200쪽의 얇은 도서였다.
이 책은 표지에 나온 것처럼 객체지향 패러다임에 익숙한 독자에게 함수형 패러다임으로 생각할 수 있는 방법을 설명한다. 책의 시작은 '왜(Why)' 함수형 언어를 배워야 하는지부터 시작한다. 그리고 함수형 언어에서 공통적으로 사용하는 맵, 피터, 리듀스 또는 폴드와 메모이제이션(Memorization) 등을 설명한다. 끝으로 최근 JDK 8에 도입된 함수형 기능을 Stream API와 폴리글랏 그리고 폴리패러다임에 대해 설명한다.
함수형 패러다임을 익히고자 하는 사람에게 이 책은 적어도 아래 세 가지 이유 때문에 추천하고 싶다.
이 책의 한 가지 단점이라면 익숙하지 않은 함수형 언어에 대한 설명이 거의 없는 상태에서 코드가 나온다는 것이다. 본인은 최근에 함수형 언어 코드를 눈으로 조금이나마 봐서 코드를 읽는 게 가능했지만 처음 보는 사람에게는 약간의 좌절감을 줄 수도 있을 것 같다.
국내에서는 함수형 프로그래밍에 대한 열풍이 아직까지는 불고 있지 않는 것 같다. 그러나 멀지 않은 미래에 Node.js 처럼 갑작스럽게 수요가 있을 것으로 생각한다. 미래는 준비하는 자의 것이다. 다른 사람들이 명령형 혹은 객체지향 패러다임으로만 문제를 바라볼 때, 조금만 더 노력해서 함수형 패러다임으로도 문제를 바라볼 수 있는 능력을 갖추는 것은 어떨까? 한빛미디어에서 번역한 <함수형 사고(Functional Thinking)>는 객체지향 개발자에서 함수형 개발자로 거듭나는 데 필요한 레시피를 제공하는 훌륭한 책이다.