서평. 함수형 자바스크립트

이봉
3 min readMay 9, 2018

--

📚 함수형 자바스크립트: 모던 웹 개발에 충실한 실전 함수형 프로그래밍 안내서

서론

오랜만에 책을 한권 읽었는데. 좋았다. 오히려 퇴사 후 자기 시간을 써서 독서를 해야하니 사치가 되는 모순이 생겼다.

책은 이북을 선호하는데 구글 플레이 들어가서 rxjs 검색했다가 우연히 걸려서 그대로 구매했다. rx는 아니지만 자바스크립트를 베이스로하는 FP 서적이 적다보니 보고 싶었을까?

감상

함수형 자바스크립트를 실제 라이브러리들과 함께 다루면서 꽤나 중요한 개념들을 훑고 갑니다. 책도 300페이지 정도로 부담스럽지 않다.

lodash, ramda, rxjs 라이브러리를 조금씩 소개하면서 이를 기반으로 코드를 보여준다. rx를 찾다가 걸린 책이지만 정작 바로 사야겠다는 생각을 하게 한건 ramda 였다.

ramda 는 fp를 지향하는 라이브러리로 모든 함수(?)가 기본적으로 커링을 지원한다.

lodash/fp 같은 것도 현재 존재하긴 하는데 일단 ramda로 짜여진 코드를 봤을 때, 깔끔함에 감탄했던 기억이 있었고, Clojure 로된 코드를 보고도 비슷한 생각을 했으니 아마도 fp가 내게 준 인상인가 싶다.

서평이니 굳이 제가 가진 fp에 대한 생각을 적진 않겠지만. 다만 뭔가 fp를 해보고 싶다거나 rx로 어떻게 가야하는가에 대한 길을 찾을때, 함수형 혹은 그 기반의 리액티브 라이브러리가 너무 많은 메소드로 벽을 치고 있어 힘들었다면 도움을 받을 수 있을 거라 생각한다.

개인적으로 극단적인 예를 들어서 까내리는 callback hell 같은건 CSP로도 충분히 깰 수 있다고 생각 되지만 try-catch chain 이야 말로 더 심각한 문제라고 생각하고 있었다.

저자가 여기서 인상적인 멘트를 던진다.

🐏 “try-catch나 null 체크 코드로 감싸는건 겁장이나 하는 짓입니다.”

저자가 내 마음에 자리를 잡았다. 더 읽고 싶어졌다.

마무리

fp 라이브러리를 통해 실질적인 코드를 보여주는 것 이외에도 Functor, Monad 의 개념을 개략적으로 소개하며 재귀시의 stack 문제등 전공이 CS가 아닌 사람들도 코드가 어떻게 돌아가는지에 대해 생각해 볼 여지를 제공한다.

이터레이터, 제네레이터등에 대한 개념도 소개하니 공부하기 귀찮아서 미뤄두고 있던 JS 중급 이상 인이라면 fp버리고 봐도(fp 책인데 fp를 버..) 거저 얻는거 아니겠는가 한다.

책읽고 좋아서 저자는 외국이니 좀 그렇고해서 역자에게 감사 메일도 보냈다. 번역의 질도 훌륭하다.

이건 내가 책을 읽고 ramda 를 적용해서 짜본 코드다. 부족한점이 매우 많겠지만 이런 느낌이다.

ramda 를 적용한 코드

단순 코치도 환영하니 fp는 이느낌이 아니다 라고 한다면 편하게 PR도 부탁드린다.

--

--