고급 프로그래머가
되고 싶다면,
함수형 프로그래밍 👩🏻💻
함수형/이터러블 프로그래밍이 모든 언어에 적용되고 있는 것은 분명한 이유가 있기 때문입니다.
자바스크립트는 이터러블/이터레이터/제너레이터/심볼 등을 기반으로 매우 뛰어난 프로토콜을 가지고 있습니다. 이러한 프로토콜은 개발자로 하여금 언어를 다루라고 이야기하고 있습니다. ES6+의 진짜 매력은 바로 이 ‘이터러블 프로토콜’입니다.
여기에는 실제적인 가치가 있습니다. 이터러블 프로그래밍은 문제를 작게 만들고 조합성을 높이는 데 좋은 도구입니다. 이를 통해 생산성을 높이고, 오류율을 줄이며, 유지보수가 쉽도록 합니다. 이제는 거의 대부분의 언어에 적용되면서 이 방법은 탈언어적인 해결책이 되었습니다.
함수형 프로그래밍이 주는 간결하고 안정적인 코드를 만나보세요.
도움이 되는 분들
- 함수형 프로그래밍을 배우고 싶은 분
- ES6+의 기술들을 깊게 다뤄보고 싶은 분
- 이터러블/이터레이터/제너레이터가 어려웠던 분
- 비동기 프로그래밍을 능숙하게 하고 싶은 분
- 지연성/동시성/병렬성에 대해 상세히 알고 싶은 분
- 에러 핸들링을 어떻게 해야 하는지 어려웠던 분
- 간결하고 우아한 코드를 작성하고 싶은 분
기존 ES5 문법 프로그래밍의 단점
- i++, j++, if, for, break, 상태 변경에 의존한 코드는 버그가 생기기 쉽습니다.
- 기능 발전, 기획 변경에 대응하다보면 버그가 발생되기 쉬워 유지보수가 어렵습니다.
- 개발자마다 선호하는 코드 스타일이 다르고, 서로의 코드를 해석하기 어렵습니다.
- 항상 로직을 새로 작성해야하기 때문에 생산성이 떨어집니다.
- 그에 따른 테스트 케이스도 많아지게 되어 생산성이 떨어집니다.
자바스크립트에서 이터러블 프로그래밍의 장점
- 자바스크립트는 ES6+가 되면서 언어에서 이터러블 프로토콜을 특별히 강조하고 있습니다.
- 심볼/이터러블/이터레이터/제너레이터, Promise/async/await 등의 프로토콜이 강조되고 있습니다.
- 이후 버전에서도 async/await/for...await-of/Async Iterator 등으로 프로토콜이 발전하고 있습니다.
- 언어 차원에서 지원하는 프로토콜을 통해 만들어지는 코드이기에 조합성이 높습니다.
- 언어 차원에서 지원하는 에러 핸들링을 사용할 수 있습니다.
- 비동기/동시성 프로그래밍을 보다 안전하고 쉽게 할 수 있습니다.
- 코드양을 최소화할 수 있습니다.
- 트랜스파일링을 하면서도 변환되는 코드의 양을 최소화할 수 있는 아이디어도 가지고 있습니다.
함수형/이터러블 프로그래밍은 무엇을 대체하는 것인지
- 객체지향 프로그래밍을 대체하는 것이 아닙니다.
- 이터러블 프로그래밍을 통해 명령형 코드를 대체합니다.
- i++, j++, if, for, break 등을 거의 사용하지 않게 되어 실수가 적어집니다.
예제 코드
이런 선수 지식이 필요해요!
JS에 대한 기본 지식 갖추신 분
변수선언방식, 반복문/조건문을 아시는 분
데이터타입별 기본 메소드 알고 계신 분
형변환 및 연산자와 표현식을 아시는 분