[javascript] Lodash의 커링 기능과 사용 예제

커링(Currying)은 함수를 인자를 하나씩 받는 여러 개의 함수로 나누는 것을 말합니다. Lodash는 커링을 지원하는 라이브러리로, 함수를 부분적인 인자를 받는 함수로 변환할 수 있습니다. 이를 통해 코드의 재사용성과 가독성을 높일 수 있습니다.

Lodash의 커링 기능 사용하기

Lodash에서는 _.curry 메소드를 사용하여 커링을 적용할 수 있습니다. 이 메소드는 커링을 적용할 함수를 인자로 받고, 새로운 커링된 함수를 반환합니다. 이후에 커링된 함수를 필요한 인자를 순서대로 넣어 호출하면 됩니다.

아래는 Lodash의 커링 기능을 사용하여 간단한 예제를 작성한 코드입니다.

const add = (a, b, c) => a + b + c;
const curriedAdd = _.curry(add);

const increment = curriedAdd(1); // 첫 번째 인자를 1로 고정한 커링된 함수 생성
const incrementAndDouble = increment(2); // 두 번째 인자를 2로 고정한 커링된 함수 생성

console.log(incrementAndDouble(3)); // 1 + 2 + 3 = 6 출력

위 코드에서 add 함수는 세 개의 인자를 받아 더한 결과를 반환합니다. curriedAddadd 함수를 커링하여 반환하는 함수입니다. incrementincrementAndDouble은 각각 첫 번째 인자와 두 번째 인자를 고정한 커링된 함수입니다. incrementAndDouble 함수를 호출할 때 세 번째 인자를 넣어주면 최종 계산 결과를 얻을 수 있습니다.

커링의 장점과 활용성

커링은 다양한 상황에서 유용하게 사용될 수 있습니다. 예를 들어, 함수의 일부 인자가 항상 고정된 값을 가지는 경우에는 커링을 통해 해당 값을 사전에 설정해두고, 다른 인자만 변경하여 새로운 함수를 생성할 수 있습니다. 이를 통해 유연하게 함수를 조합하고 재사용할 수 있습니다.

또한, 커링된 함수를 부분 적용(partial application)하여 필요한 인자를 전달받는 새로운 함수를 생성할 수도 있습니다. 이를 통해 함수를 모듈화하고 코드의 가독성과 재사용성을 높일 수 있습니다.

마무리

Lodash의 커링 기능을 사용하면 함수를 인자를 하나씩 받는 여러 개의 함수로 분할하여 재사용성과 가독성을 높일 수 있습니다. 커링은 다양한 상황에서 유용하게 활용될 수 있으며, 함수의 부분 적용과 조합을 통해 코드를 모듈화할 수도 있습니다.

더 많은 정보는 Lodash 공식 문서를 참고하시기 바랍니다.