본문 바로가기
javascript pure/javascript 코어 개념

22. 함수형 프로그래밍(Functional Programming) - 1

by leo2114 2024. 2. 16.
반응형

고차 함수(Higher-order Functions)와 순수 함수(Pure Functions)

고차 함수(Higher-order Functions)

고차 함수는 다른 함수를 인수로 받거나 함수를 반환하는 함수를 말합니다. 이는 함수형 프로그래밍에서 중요한 개념 중 하나이며, JavaScript에서도 많이 활용됩니다. 고차 함수를 사용하면 코드를 간결하고 모듈화된 형태로 작성할 수 있습니다.

 

핵심 내용:

  • 고차 함수는 다른 함수를 인수로 받거나 함수를 반환하는 함수를 말합니다.
  • JavaScript에서는 고차 함수를 사용하여 함수를 조합하고 새로운 함수를 생성할 수 있습니다.
  • 주로 콜백 함수, 맵(map), 필터(filter), 리듀스(reduce) 등과 같은 배열 메서드에서 고차 함수를 자주 사용합니다.

예시:

// 고차 함수 예시: 맵(map)
const numbers = [1, 2, 3, 4, 5];

// 고차 함수를 사용하여 각 요소를 제곱한 새로운 배열을 생성
const squaredNumbers = numbers.map(function(num) {
    return num * num;
});

console.log(squaredNumbers); // Output: [1, 4, 9, 16, 25]

순수 함수(Pure Functions)

순수 함수는 동일한 입력에 대해 항상 동일한 결과를 반환하며, 부작용(side effect)이 없는 함수를 말합니다. 이는 함수형 프로그래밍의 핵심 개념 중 하나이며, 코드의 예측 가능성과 테스트 용이성을 향상시키는 데 도움이 됩니다.

 

핵심 내용:

  • 순수 함수는 동일한 입력에 대해 항상 동일한 출력을 반환하며, 외부 상태를 변경하지 않습니다.
  • 부작용이 없는 함수로서 입력에 의해 출력이 결정되며, 외부 상태에 의존하지 않습니다.
  • 순수 함수를 사용하면 코드를 테스트하기 쉽고 예측 가능하게 만들어 유지보수성을 향상시킬 수 있습니다.

예시:

// 순수 함수 예시: 덧셈 함수
function add(a, b) {
    return a + b;
}

console.log(add(2, 3)); // Output: 5

// 부작용이 없으며 외부 상태를 변경하지 않음

고차 함수와 순수 함수는 모두 함수형 프로그래밍의 핵심이며, 코드를 더 깔끔하고 유지보수 가능하게 만드는 데 중요한 역할을 합니다. 이러한 개념을 활용하여 JavaScript 코드를 작성하면 코드의 가독성과 확장성을 향상시킬 수 있습니다.

 

 

 
반응형