[함수형 프로그래밍과 ES6+] 0. Intro

fano·2021년 1월 24일
0

강의에 별다른 도입부가 없어 강의 소개페이지를 재구성하였습니다.

흐름

08년도 부터 클로저, 엘릭서, 스칼라와 같은 함수형 언어들이 생겨나고,
기존 언어에서는 관련 라이브러리들이 생겨나고 있다.
Java, Swift, Kotlin, JS 등에선 언어 자체에 LISP 혹은 FP가 도입되었다.
함수형프로그래밍은 거의 대부분의 언어에 적용이 되었다. 이는 더 이상 특정 언어에 한정된 특성이 아니다.

Why?

함수형 프로그래밍은 실질적인 가치가 있다.

이터러블 프로그래밍은 1) 문제를 작게 만들고 2) 조합성을 높인다.

이를 통해 생산성, 오류율, 유지보수에 이점을 가질 수 있다.

FP In JS

  • ES6를 기점으로 언어 자체에서 이터러블 프로토콜을 특별히 강조하고 있다. (심볼 / 이터러블 / 이터레이터 / 제너레이터, Promise / async / await)

  • 언어 차원에서 지원되는 프로토콜이기에 조합성이 뛰어나다.

  • 언어 차원에서의 에러 핸들링이 가능하다.

  • 비동기 / 동시성 프로그래밍을 보다 안전하고, 쉽게 할 수 있다.

  • 코드양을 최소화 할 수 있다.

ES5 프로그래밍의 단점

  • i++, if, for, break, 상태 변경에 의존한 코드는 버그가 생기기 쉽다.

  • 확장성, 유연성이 떨어진다.

  • 코드스타일이 제각각이다.

  • 생산성이 떨어진다.

FP / LISP는 무엇을 대체하는가?

  • OOP를 대체하는 것이 아니다.
  • 명령형 코드를 대체한다.
  • i++, if, for, break를 거의 사용하지 않아 버그가 쉽게 안 생긴다.
profile
서비스를 생각하는 개발

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN