JavaScript에서 함수 합성
발행: (2025년 12월 11일 오전 03:33 GMT+9)
2 min read
원문: Dev.to
Source: Dev.to
Introduction
함수형 컴포지션(함수 파이프라인이라고도 함)은 간단한 함수를 연결해 더 읽기 쉽고 모듈화된 코드를 만들 수 있게 해줍니다.
Defining Simple Functions
const double = x => x * 2;
const minusOne = x => x - 1;
const square = x => x * x;
double(x): 2배로 곱합니다minusOne(x): 1을 빼습니다square(x): 숫자를 제곱합니다Math.sqrt: 제곱근을 반환하는 내장 함수
Building the Function Pipeline
함수 레퍼런스를 배열에 저장합니다—이 시점에서는 호출이 이루어지지 않습니다.
const functions = [
square,
double,
minusOne,
Math.sqrt,
];
Executing the Pipeline
초기값을 정하고 각 함수를 순서대로 적용합니다.
let result = 42; // 시작 숫자
for (const fn of functions) {
result = fn(result);
}
루프는:
- 현재
result를 가져옵니다. - 다음 함수(
fn)에 전달합니다. - 출력값을 다시
result에 저장합니다.
호출 순서는 다음과 동일합니다:
result = square(42);
result = double(result);
result = minusOne(result);
result = Math.sqrt(result);
Step‑by‑Step Calculation
| Step | Operation | Result |
|---|---|---|
| 1 | square(42) | 1764 |
| 2 | double(1764) | 3528 |
| 3 | minusOne(3528) | 3527 |
| 4 | Math.sqrt(3527) | ≈ 59.380 |
Full Code Example
const double = x => x * 2;
const minusOne = x => x - 1;
const square = x => x * x;
const functions = [
square,
double,
minusOne,
Math.sqrt,
];
let result = 42; // 시작 숫자
for (const fn of functions) {
result = fn(result);
}
console.log('The answer is ' + result);
// The answer is 59.380217...