2.1 KiB
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
왜 고차 함수를 쓰나요?
고차 함수를 사용하면 코드의 추상화 수준을 높일 수 있습니다.
-
코드의 재사용성: 복잡한 로직(반복문, 조건문 등)은 고차 함수 내부에 숨기고, 실제 수행할 구체적인 작업만 함수로 갈아 끼울 수 있습니다.
-
가독성 향상:
for문을 돌리며 배열을 수정하는 대신,filter나map같은 명칭을 사용함으로써 코드가 무엇을 하려는지 의도를 명확히 드러낼 수 있습니다. -
함수형 프로그래밍: 데이터를 직접 변경하지 않고 새로운 데이터를 생성하는 방식(불변성 유지)을 구현하기에 최적입니다.