[책] 함수형 자바스크립트

동명의 오라일리 역서보다는 훨씬 친절한 책입니다. 매닝 특유의 분위기랄까 그런 게 잘 살아있습니다. 특히 원서의 분위기에 맞춰 번역도 상당히 부드럽게 잘 되어서 이질감이 거의 없네요.

ES6를 기반으로 하여 내용을 전개하고 있으며, 함수형에서 가르치는 기본적인 내용을 차근차근 전개해 그 의미를 짚어주고 있습니다. 사실 대부분 함수형 프로그래밍 책들은 언어에 상관없이 다루는 내용이 비슷합니다. 그건 흐름제어를 가르치는 책들도 언어에 상관없이 비슷하게 전개되는 것과 마찬가지 입니다. 함수형에도 기본이 되는 개념과 의미가 있으니까 어떤 언어를 쓰던 적당한 구조물만 제공해준다면 비슷한 양상으로 가르치게 됩니다.
하지만 이 책은 얇은 분량인데도 쉽고 친절하게 설명할 뿐 아니라 실제 사용해야할 의미를 잘 짚어주는 점이 좋네요.

특히 일반적인 전반부와 달리 파트2에 들어오면 다른 함수형 책들보다 훨씬 흥미진진한 내용들이 전개됩니다. 함수형 구조에 대한 단위테스트를 적합하게 하는 방법이나 최적화에 대한 구체적인 방법론도 재밌고 쉽게 다루고 있습니다. 특히 테스트에 대해서는 제법 깊게 다룹니다.

비동기 섹션에서는 프라미스에서 제네레이터, Rx등을 이용해 처리하는 예를 알기 쉽게 설명합니다(함수형 리액티브라던가 그런 건 너무 간단하게 짚어가기 때문에 도움은 거의 되지 않지만 ^^;)

책은 ES6정도를 기준으로 삼고 있기 때문에 보다 다채로운 ES2016이후의 기능을 활용하고 있지는 않습니다. 자바스크립트의 발전 방향에 함수형 프로그래밍을 지원하는 쪽도 많이 반영되고 있습니다. 특히 차기 기능 후보 중에는 ES에 아예 파이프라인 연산자를 도입하자는 제안도 있습니다(f#처럼 |> 을 통해 함수의 파이프라인을 연산자로 연결하게 해주는 안입니다) 짜피 함수형만 고집할 필요는 없지만 함수형 패러다임을 잘 이해하면 다양한 문제를 만났을 때 함수형으로 굉장히 쉽게 풀리는 문제도 많으므로 한 번쯤은 어떤 책으로든 기본적인 스킬은 학습하는 편이 좋다고 생각합니다.

그러한 면에서 동명의 오라일리 책이 입문자에게 거의 암호문 레벨로 나왔던 것에 비해 이 책은 추천할만 합니다.