지금까지 나의 길을 돌아보면 객체지향 언어 보다 C언어로 임베디드 시스템 구현하는 작업을 많이 한 것 같다. 학생 시절에 C++, 자바를 배우긴 하였으나 실전에서 설계를 하기보다는 기존 코드를 수정 보완하는 작업에 촛점을 맞추어왔다. 자바스크립트는 IoT 구현에 관심을 가지면서 조금씩 배우긴 했지만 기본이 튼튼하지 않으니 여전히 수박 겉핧기 처럼 느껴진다. "물들어올때 노저어라"라고 했던가~ 우연한 기회에 이책을 접하게 되고 강제로 공부하게 됨을 기쁘게 생각한다.
최근에 함수형 프로그래밍을 주제로한 서적들이 많이 보인다. 그만큼 프로그래밍 언어의 세계에서 중요한 패러다임이지 않을까 추측해본다. 위키페이지를 참조해보니1930년대에 개발된 람다대수를 근간으로 많은 프로그래밍 언어에서 람다연산을 발전시켜오고 있다고 한다. 여타 다른 함수형 언어들보다 이책에서 언급한 것 처럼 자바스크립트가 갖는 인기와 친숙함이 있기에 잘 활용하여 입문을 한다면 시간이나 노력에서 효율적일 것 같다.
웹 어플리케이션을 잘 알고 있는 자바스크립트 개발자를 대상으로 하기 때문에 최소한 자바스크립트에 어느 정도 숙달 되어 있지 않으면 자주 어려운 부분을 만나지 않을까 생각된다. 그러나 자바스크립트 입문자라 하더라도 함수형 설계와 객체지향형 설계의 차이점에 초점을 맞추어 읽어나가면 많은 도움이 되지 않을까 한다.
이책은 크게 3부분으로 구성된다. Part1에서 함수형 프로그래밍의 개념 및 함수형으로 사고를 하는 방법을 배우고 Part2에서는 함수형 프로그래밍을 실전에 응용하기 위한 개념과 기법을 설명한다. 마지막으로 Part3에서는 작성한 프로그램을 검증하기 위한 테스트 기술을 배우면서 초급부터 고급까지 다양한 지식을 단계적으로 배울 수 있도록 되어있다.
"함수형 프로그래밍은 과연 무엇인가? 자바스크립트를 활용하여 함수형 프로그래밍을 시작하면 어떨까?"
중간 중간에 어려운 부분이 나올때 마다 다이아그램을 잘 활용한 설명으로 조금이나마 이해도를 높일 수 있었다. 자바스크립트를 활용한 함수형 프로그래밍은 분명 색다른 경험이었다. 절차적 언어와는 전혀 다른 차원의 코드 간결화와 생산성을 향상을 이루어 낼 수 있다니 신기할 따름이다. 함수형 프로그래밍에 흥미와 기대를 갖게 하는 과정이었다.