Files
kui-vault/content/03.Note/고차 함수(Higher-Order Function).md
T
2026-04-09 10:48:09 +09:00

2.1 KiB

id, created, tags, aliases
id created tags aliases
고차 함수(Higher-Order Function) 20260407 2026-04-07 15:55

💡 생각

이곳에 하나의 생각 또는 아이디어를 작성합니다.


📑 개념

함수를 다루는 함수라고 생각하면 쉬워요. 함수가 다음 중 하나 이상을 수행한다면 고차 함수라고 부릅니다.

고차 함수의 두 가지 조건

1. 함수를 인자로 전달받음

다른 함수를 매개변수(Parameter)로 넘겨받아 실행하는 경우입니다. 이때 인자로 전달되는 함수를 보통 콜백 함수(Callback Function) 라고 부릅니다.

  • 예시: Array.prototype.map(), filter(), forEach()
    const numbers = [1, 2, 3];
    // 여기서 map은 고차 함수이고, (n => n * 2)는 콜백 함수입니다.
    const doubled = numbers.map(n => n * 2); 
    

2. 함수를 결과로 반환함

함수 실행의 결과물로 새로운 함수를 만들어 내보내는 경우입니다. 이 방식은 클로저(Closure)커링(Currying) 기법을 구현할 때 자주 쓰입니다.

  • 예시:
    function makeMultiplier(multiplier) {
        // 함수 자체를 반환합니다.
        return function(value) {
            return value * multiplier;
        };
    }
    const triple = makeMultiplier(3);
    console.log(triple(10)); // 30
    

왜 고차 함수를 쓰나요?

고차 함수를 사용하면 코드의 추상화 수준을 높일 수 있습니다.

  1. 코드의 재사용성: 복잡한 로직(반복문, 조건문 등)은 고차 함수 내부에 숨기고, 실제 수행할 구체적인 작업만 함수로 갈아 끼울 수 있습니다.

  2. 가독성 향상: for 문을 돌리며 배열을 수정하는 대신, filtermap 같은 명칭을 사용함으로써 코드가 무엇을 하려는지 의도를 명확히 드러낼 수 있습니다.

  3. 함수형 프로그래밍: 데이터를 직접 변경하지 않고 새로운 데이터를 생성하는 방식(불변성 유지)을 구현하기에 최적입니다.