Marty Indong Yoo
4 min readMar 21, 2018

--

안녕하세요. 유인동입니다 😃 의견 남겨주셔서 고맙습니다.

책에 대한 아쉬움을 써주셨는데, 실제로 처음 집필한 책이기도 하고, 부족한 점이 너무 많습니다. 저 역시 참 아쉬움을 많이 가지고 있습니다.

ES6을 메인으로 채택하지 않은 것이 아쉽다고 해주셨는데요. 저도 더 간결하고 우아하게 표현할 수 있으니 ES6 문법만을 쓰고 싶은 생각도 있었습니다.

그런데 이 책을 쓰면서 중요하게 생각했던건, 독자가 ‘함수형 자바스크립트’ 자체에 대해 소개 받는 것에 집중될 수 있도록 하는 것이었습니다. ES6을 잘 모르는 독자에게는 ES6설명을 항상 함께 하지 않는다면, 눈에 안익은 코드가 보이게 될 수 있다고 생각해서, 최대한 ES5를 기반으로 작성했습니다. 그래서 책의 특정 부분에는 함수형을 이야기하기 위해 꼭 필요한 경우에만 독자에게 양해를 구하고, 설명을 첨부하면서 화살표 함수 정도를 쓰기도 했고, ES6+인 async/await나 Promise도 일부 쓰기도 했습니다.

책을 쓰기 시작한 것은 2016년이었는데요. 인사이트와 책 계약을 처음에 할 때 사장님께서 “책을 읽는 독자들을 위해서, 쉽게 써주었으면 좋겠다고, 꼭 좀 부탁한다고” 하신게 기억납니다. 결론적으로 ES6을 잘 알고 있는 독자이든, ES5만 익숙한 독자이든 ‘함수형 자바스크립트’에 대한 소개를 받는데에 장벽이 없게 하는 것을 가장 중요하게 생각하게 되었습니다.

한 가지 이유가 더 있습니다. 이 책은 함수형 프로그래밍이 자바스크립트 실무에 실제적인 도움을 준다는 것을 주장하며, 실무에 적용해보고 싶어하는 독자 분들을 위해서 쓴 책입니다. 그래서 지금 당장 적용할 수 있고, 서비스 레벨로 쓰여질 수 있고, 모든 환경을 지원하는데에도 무리가 전혀 없는 기술임을 얘기하고 있습니다. 아직까지도 국내에서 IE의 점유율이 30퍼센트 정도로 나오는 것으로 보이고, NodeJS로 실 서비스를 운영하는 회사들 중에는 Node버전을 선뜻 올리지 못하는 서비스도 많습니다. IE 지원이나 구 버전 지원에 대한 해결을 트랜스파일링으로 해결 할수도 있겠지만, 개발자와 개발팀이나 회사에 따라 그 분들께서 어떠한 전략을 쓸 것인지는 상황에 따라 달리 선택을 하실테니, 모든 경우에 지금 적용가능한 기술임을 보여주는게 중요하다고 생각했습니다.

개인적으로는 자바스크립트를 오랫동안 좋아해온 한 사람의 입장에서, 자바스크립트의 기초/기반이 이미 함수형 프로그래밍을 충분히 품을 만큼 준비가 되어 있었다는 사실을 이야기하고 싶었습니다. 튜토리얼 소개보다는 고민에 대해서 전해보는 책이 되길 바랬습니다. 알고보니 자바스크립트는 이미 높은 수준의 함수형 프로그래밍이 가능한 상태의 모습이었고, 지금 바로 적용이 이미 가능하다는 것을 이야기하고 싶었습니다. 자바스크립트의 일급 함수와 클로저, 비동기 프로그래밍 등의 사례는 2010년도쯤부터 많은 언어와 서버와 플랫폼들에 큰 영향을 끼쳤다고 생각합니다. 그런 의미에서 임백준님도 ‘함수형 스타일의 코딩을 허락하는 자바스크립트에게 놀랐다’고 추천사를 써주셨다고 생각하고, 그것을 알리고 싶었습니다.

모나드에 대한 개념과 활용법에 대한 설명이 없는 점이 약간 아쉽다고 해주셨는데요. 자바스크립트에는 모나드가 없어서 설명을 하지 않았습니다. 함수형 프로그래밍 언어로 인정 받고 있는 클로저나 엘릭서 역시 모나드는 없습니다. 클로저를 가르치는 책이나 공식 문서 등에도 Functor나 Monad 등으로 검색해도 나오는 것은 없고, 엘릭서 역시 그렇습니다. 클로저에 모나드가 없기 때문에 클로저 책에 모나드에 대한 설명이 없는 것이 어색하지는 않습니다. 자바스크립트 역시 모나드, Functor 등이 없기 때문에 설명하지 않았습니다. 파란책에서는 자바스크립트 위에 모나드를 구현한 사례를 소개하기 때문에 그렇겠지만, 제가 소개한 함수형 자바스크립트에는 모나드가 없었습니다. 비동기에 대해서는 ‘함수형 자바스크립트 프로그래밍’에 비동기를 다루는 내용을 많이 담았다고 생각했는데, 혹시 ADT 스펙을 지원하는 비동기가 없다는 말씀이신건가 싶네요.

저도 ES6+를 정말 애정합니다. 2019년 정도에는 ES6+이 더 많은 곳에서, 아무 제약도 없이, 다른 도구의 도움들 없이 쉽게 사용 가능해지고, 그래서 더더욱 더 적극적으로 쓰이게 될 것이라 확신하고, 더 크게 사랑받는 언어가 될 것이라고 생각합니다. 언어가 계속 좋아지고 있고, 이미 문법이 충분히 예쁘고, 개발자들이 만질 수 있는 프로토콜도 많아지고 있고, 점더 멋진 언어가 될거라 생각합니다. 그리고 자동 업데이트 되는 브라우저들만 남게 되어 더더욱 JS 세상이 아름다워질 것 같네요. 함수형 JS도 더욱 발전해서 많은 3rd party 에서 좋은 사례들이 나오고, 많은 영향을 끼쳐줄 것이라 기대합니다. 마지막으로 재밌는 글들도 번역도 해주시고 감사합니다. 덕분에 잘 보고 있습니다. 감사합니다. :)

--

--

Marty Indong Yoo
Marty Indong Yoo

Written by Marty Indong Yoo

The future will be led by creators and owned by communities

Responses (1)