1. 프로그래밍 패러다임의 하나로, 함수의 사용과 함수 호출을 중심으로 프로그램을 구성하는 방식입니다. 이 접근법은 순수 함수(pure functions), 고차 함수(higher-order functions), 불변성(immutability), 함수 합성(function composition) 등을 중요시합니다.
순수 함수
같은 입력값에 대해 항상 같은 출력값을 반환하는 함수
함수 실행 중에 외부 상태를 변경하지 않으며, 함수의 실행이 외부 상태에 영향을 받지 않음.
// 순수 함수 예제function add(a, b){
return a + b;
}
고차 함수 (Higher-Order Functions)
함수를 인자로 받거나, 함수를 반환하는 함수
// 고차 함수 예제function applyOperation(a, b, operation){
return operation(a, b);
}
const result = applyOperation(2, 3, add); // 5
// 함수 합성 예제const compose = (f, g) => x => f(g(x));
const addOne = x => x + 1;
constdouble = x => x * 2;
const addOneThenDouble = compose(double, addOne);
console.log(addOneThenDouble(2)); // 6
2. 함수형 프로그래밍의 장점
예측 가능성: 순수 함수는 같은 입력에 대해 항상 같은 출력을 반환하므로, 프로그램의 동작을 예측하기 쉬움.
테스트 용이성: 순수 함수는 외부 상태에 의존하지 않으므로 테스트가 용이함.
병렬 처리 용이성: 불변 데이터를 사용하기 때문에 병렬 처리가 쉬워짐.
코드의 가독성 및 유지보수성 향상: 함수형 프로그래밍은 선언적(declarative) 스타일을 채택하므로 코드가 간결하고 이해하기 쉬움.