[javascript] 함수형 프로그래밍
함수형 프로그래밍은 자바스크립트에서 많은 개발자들 사이에서 인기를 얻고 있는 프로그래밍 패러다임 중 하나입니다. 함수형 프로그래밍은 순수 함수와 불변성을 강조하여 안정적이고 예측 가능한 코드를 작성할 수 있도록 도와줍니다.
순수 함수
순수 함수는 동일한 입력에 대해서는 항상 동일한 결과를 반환하고, 부작용(side effect)이 없는 함수를 말합니다. 이를 통해 코드의 안정성을 높일 수 있고, 테스트하기 쉬운 코드를 작성할 수 있습니다.
아래는 순수 함수의 예시입니다.
function add(a, b) {
return a + b;
}
불변성
불변성은 데이터가 한 번 만들어지면 그 값을 변경할 수 없음을 의미합니다. 자바스크립트에서 배열과 객체는 기본적으로 가변(mutable)하므로, 불변성을 유지하기 위해 라이브러리나 방법을 사용해야 합니다.
아래는 불변성을 유지하는 예시입니다.
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4];
고차 함수
고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수를 말합니다. 이를 활용하여 코드의 재사용성을 높일 수 있고, 추상화 수준을 높여 코드를 간결하게 작성할 수 있습니다.
아래는 고차 함수의 예시입니다.
function map(arr, fn) {
const result = [];
for (let i = 0; i < arr.length; i++) {
result.push(fn(arr[i]));
}
return result;
}
함수형 프로그래밍은 객체지향 프로그래밍과 비교하여 다른 접근 방법을 제시하므로, 복잡한 상태와 상태 변화를 다루는 코드를 작성할 때 유용합니다.
자바스크립트에서 함수형 프로그래밍을 잘 활용하면 보다 읽기 쉬운, 안정적인 코드를 작성할 수 있습니다.