들어가기

평소 프로그래밍 학습을 진행하다 보면 자주 들리는 말이 lodash,와 underScore이다.

이 라이브러리들은 함수형 프로그래밍을 지원한다는데 함수형 프로그래밍을 지원한다는 말이 이해가 되지 않았다. 뭘 어떻게 지원한다는 것일까?

프로그래밍을 시작하던 시절 js에서 지원하지 않는 메서드들을 지원한다는 이런 라이브러리가 궁금해져서 가장 궁금하고 사람들이 두려워하는 람다js에 혀를 대보기로 하였다.

what is Ramda.js?

js는 여러 프로그래밍 패러다임이 짬뽕된 멀티 패러다임 언어이다.

이 때문에 js는 유연한 프로그래밍이 가능하지만 반대로 명확하지 않은 개발자가 고민하고 구현해야할 부분이 많다고 느낀다.

js의 기본 특성만으로도 함수형 패러다임을 따를 수 있다. 완전한 함수형 패러다임에는 적합하지 않은 면이 분명하게 구분되어진다.(부족한 자료구조 조작 도구와, 데이터의 불변성등)

나는 js를 조작하면서 보일러 플레이트 코드를 만드는게 당연하다고 생각하였는데 이는 다른 언어에서는 이미 구현되어 있는 경우가 많다고 한다. 즉 생산성이 떨어지는데 이를 체감하지 못하던 것이다.

람다는 함수형 프로그래밍을 위한 유틸리티 함수들을 추가해준다. 언더스코어와, 로대시에 비해 최신에 나온 도구란 점과, 경쟁 라이브러리들보다 좀 더 정석에 가까운 함수형 표현을 할 수 있도록 설계된것이 특징이다.

람다를 사용하면 먼저 무슨장점이 있을까? js 코딩이 한결 수월해 진다. 길고 설명적인 코드를 줄이는것, 가독성이 바로 체감할 수 있는 장점이다.