개발공부/JavaScript

함수형 프로그래밍의 특징

개발자 찐빵이 2022. 2. 17. 07:34
728x90

1. Pure Function (순수 함수)

함수에서 외부의 값을 참조하면 안 된다.
동일한 인자를 넣었을 때 항상 동일한 결과 값을 내어야 한다.

함수 안에서 외부의 상태 값을 변경하면 절차 지향적 프로그래밍이다.

2. Stateless, Immutability (비상태, 불변성)

함수 인자로 전달된 데이터를 변경하면 안 된다.
멀티스레드 환경에서 사이드 이팩트가 있기 때문이다.

새로운 Object에 결과값으로 만들어서 전달해야 사이드 이팩트를 막을 수 있다.

3. Expressions Only

반복문, 조건문을 사용하지 않고도 배열 내장 메서드를 사용해서 배열에 접근 및 값 변경 가능하다.

4. First-class and Higher-order functions

First-class : 함수를 변수에 할당하거나 인자로 전달, 리턴하는 특징
Higher-order : 함수 자체를 인자로 전달, 함수에서 또 다른 함수 리턴하는 특징

위 두 개의 특징을 가지고 있어야 한다.

반응형