[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;
}

함수형 프로그래밍은 객체지향 프로그래밍과 비교하여 다른 접근 방법을 제시하므로, 복잡한 상태와 상태 변화를 다루는 코드를 작성할 때 유용합니다.

자바스크립트에서 함수형 프로그래밍을 잘 활용하면 보다 읽기 쉬운, 안정적인 코드를 작성할 수 있습니다.

참고 자료