커링은 여러 개의 인자를 받는 함수를 하나의 인자를 받는 함수들의 연속된 체인으로 변환하는 기법으로 원래는 여러 인자를 한 번에 받는 함수를 여러 단계로 나눠서, 각각의 인자를 별도의 함수 호출로 전달하는 방식이다. 이 기법은 함수형 프로그래밍에서 자주 사용된다.
여기에 기본적으로 2개의 인자를 받아 계산해주는 add 함수가 있다.
function add(x, y) {
return x + y;
}
console.log(add(2, 3)); // 5
이 함수를 커링을 적용하여 다음 형태로 변경할 수 잇다.
function cAdd(x){
return function(y) {
return x+y;
};
};
const addOne = cAdd(1);
console.log(addOne(2)); // 3
console.log(cAdd(1)(2)); // 3
화살표 함수를 이용하여 작성하면 다음과 같다.
const cAdd = (x) => (y) => {
return x+y;
}
const addOne = cAdd(1);
console.log(addOne(2)); // 3
console.log(cAdd(1)(2)); // 3
구글에서 만든 직렬화 포맷으로 데이터를 빠르고 효율적으로 직렬화, 역직렬화 하기 위해 사용되며 JSON, XML과 같은 형식보다 저 작고 빠르다. 다양한 프로그래밍 언어에서 지원된다.