Currying은 함수를 여러 개의 인수를 받는 함수로 분해하는 기술입니다. 이를 통해 우리는 재사용 가능한 함수 유틸리티를 만들 수 있습니다. 이 글에서는 자바스크립트에서 Currying을 사용하여 재사용 가능한 함수 유틸리티를 어떻게 만들 수 있는지 알아보겠습니다.
Currying이란?
Currying은 함수를 부분적으로 호출하는 기술로, 함수의 인수를 재사용 가능한 함수로 반환하는 것을 의미합니다. 예를 들어, add
함수를 Currying을 사용하여 구현한다면 다음과 같이 사용할 수 있습니다.
function add(x) {
return function(y) {
return x + y;
}
}
const addFive = add(5);
console.log(addFive(2)); // 7
console.log(addFive(10)); // 15
이렇게 Currying을 사용하면 add
함수는 첫 번째 인수 x
를 받은 다음, 두 번째 인수 y
를 받을 때까지 기다린 후에 덧셈 연산을 수행합니다. 이렇게 만들어진 addFive
함수는 항상 5를 첫 번째 인수로 받은 후에 두 번째 인수로 받은 값을 더하는 함수입니다.
재사용 가능한 함수 유틸리티 만들기
Currying을 사용하여 재사용 가능한 함수 유틸리티를 만들기 위해서는 다음과 같은 단계를 따를 수 있습니다.
- Currying할 함수를 선택합니다. (예:
multiply
) - 첫 번째 인수를 받아 해당 값을 이용하여 Currying된 함수를 반환하는 함수를 만듭니다.
- 반환된 함수는 다음 인수를 받아 해당 값을 이용하여 계산을 수행합니다.
예를 들어, 다음은 multiply
함수를 Currying하여 재사용 가능한 double
함수와 triple
함수를 만드는 예제입니다.
function multiply(x) {
return function(y) {
return x * y;
}
}
const double = multiply(2);
console.log(double(5)); // 10
const triple = multiply(3);
console.log(triple(5)); // 15
이렇게 만들어진 double
함수는 항상 2를 첫 번째 인수로 받은 후에 두 번째 인수로 받은 값을 곱하는 함수입니다. 마찬가지로 triple
함수는 항상 3을 첫 번째 인수로 받은 후에 두 번째 인수로 받은 값을 곱합니다.
결론
Currying은 자바스크립트에서 재사용 가능한 함수 유틸리티를 만들기 위해 유용한 기술입니다. Currying된 함수를 사용하면 인수 일부를 미리 지정한 후에 나머지 인수를 전달하여 함수를 호출할 수 있습니다. 이를 통해 코드를 더 간결하고 재사용 가능하게 만들 수 있습니다. Currying을 사용하여 여러분도 재사용 가능한 함수 유틸리티를 만들어보세요!
#자바스크립트 #Currying