커링(Currying) 이란?
- 커링은 인자를 여러개 받는 함수를 분리하여, 인자를 하나씩만 받는 함수의 체인으로 만드는 방법이다.
- 함수형 프로그래밍 기법 중 하나로 함수를 재사용하는데 유용하게 쓰일 수 있는 기법이다.
- 자바스크립트 내부에는 커링이 내장되어 있지 않지만 자바스크립트로도 구현이 가능하다.
예시
- 적용 전에
const testAction = (initialState, action) =>
produce(initialState, draft => {
const { type } = action;
switch (type) {
case TEST_ACTION1:
draft.test1 = 'test1';
break;
case TEST_ACTION2:
draft.test2 = 'test2';
break;
default:
break;
}
});
- 적용 후
const testAction = produce((draft, action) => {
const { type } = action;
switch (type) {
case TEST_ACTION1:
draft.test1 = 'test1';
break;
case TEST_ACTION2:
draft.test2 = 'test2';
break;
default: break;
}
}, initialState);
주의할 점
- 주의 할게 있다면 커링 함수에서는 인자의 순서가 매우 중요하다.
- 외부 함수 즉 가장 먼저 받는 인자일 수록 변하지 않아야 하고, 내부 함수 즉 가장 나중에 받는 인자일 수록 변할 가능성이 높다. 이런 것들을 생각해가며 설계를 해야한다.
728x90
반응형
'Tech > Javascript' 카테고리의 다른 글
[Javascript] 변수와 호이스팅(Variable and Hositing) (0) | 2022.03.30 |
---|---|
[Javascript] 옵셔널 체이닝 (Optional Chaining)을 사용해보자 (0) | 2022.03.16 |
[Javascript] 제너레이터 함수 (Generator Function) (0) | 2021.04.06 |
[Javascript] 화살표 함수 (Arrow Function) (0) | 2021.04.06 |
[Javascript] 비동기 처리와 콜백 함수(asynchronous processing and callback) (0) | 2021.03.12 |