:arrow
함수형 프로그래밍
- 좋은 코드의 기준은 없어도 구조적으로 좋은 설계를 가질수록 좋은 코드가 된다는 것을 알고 있다.
- 좋은 설계의 유지는 일관적인 원칙과 규칙으로 작성된다.
- 이를 패러다임이라고 칭한다.
- 데이터를 함수로 연결하는 것을 중심으로 사고하고 프로그래밍하는 것을 함수형 프로그래밍이라고 한다.
자바스크립트 — 멀티 패러다임 언어
- Brendan Erich는 JavaScript는 객체지향의 한계를 느끼고, LISP — Schme 등 함수형 프로그래밍에 관심을 가지고 있었다. 함수형 프로그래밍 형태의 언어를 만들고자 하였으나, 당시 유행하던 Java 문법의 니즈에 의해 혼종 형태로 등장한다.
- 완전한 함수도 객체지향 언어도 아닌 멀티패러다임 언어
- 객체 지향과 함수 지향을 구분하여 섞어 쓰는 것이 좋다.
함수형 프로그래밍이란
- 수학 함수를 사용하고 부수효과를 피하는 패러다임
- 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일
부수효과
- 함수가 리턴 값 이외에 하는 모든 일
- 함수가 부를때마다 발생
순수 함수
<aside>
💡 하지만, 실제 함수형 프로그래머스는 부수 효과와 순수하지 않은 함수를 사용한다.
</aside>
함수형 프로그래밍의 문제
-
부수 효과가 필요하다.
-
부수 효과는 소프트웨어를 실행하는 이유이다.
⇒ 필요할때는 사용해야한다.
-
함수형 프로그래밍은 부수효과를 잘 다룰 수 있어야 한다
- 순수하지 않은 함수를 잘 다루는 방식을 통해 사용해야한다.