함수형 프로그래밍
사실 뭐 함수형이니 객체 지향이니 .. 뭐 요즘 말이 많은데 주로 내가 Project할 땐 가려서 쓰지 않는 느낌이다.
작업을 진행할 때마다 느끼는 거지만 장단점이 있는 느낌..?
근데 함수형 프로그래밍으로 여러 Util 함수들을 만들어 놓고 작업을 진행하는 경우가 많으므로 자주 사용하는 함수에 대해서 정리도 하고 기록도 하고 일석이조 아니겠는가.
보통 개인 Git에 올린 유용한 Util 함수들을 프로젝트를 진행할 때마다 만들어서 사용하곤 하는데 꽤 유용한 것들 중에서
pipe함수에 대한 포스팅 하겠다.
Pipe
이름에서도 느껴지지만 뭔가 실제 파이프처럼 연결된 그런 느낌적인 느낌이 드는데,,,
대충 요약하자면 여러 함수들을 합쳐서 하나의 함수로 만든 뒤 반환해주는 느낌적인 느낌이 있는 함수이다.
구현을 해보자면 아래와 같은 느낌인데,,,
function pipe(funcs) {
return function(v) {
return funcs.reduce((res, func) => {
return func(res);
}, v)
}
}
뭔가 멋지게 Closure를 활용해서 구현했다. 파라미터로 받은 funcs ( 함수의 Array ) 를 reduce를 활용하여 빙긍빙글 돌리면서 func에 누적 값 res를 계속 넣으면서 연속적으로다가 함수를 실행시키는 구조이다.
뭐 언뜻 보기에 몇 줄 안되는 코드인데 막상 해석하려고 하면 난해할 뿐더러 활용하기에도 어렵다. 근데 이제 이런 함수의 사용에 익숙해 지면 좋을 듯 하다.
이런 작은 것들이 모여서 큰 성장을 이루어 내는 것이 아니겠는가.
'IT > JavaScript' 카테고리의 다른 글
Request body validation middleware (0) | 2023.05.08 |
---|---|
if를 통한 명확하고 확실한 조건 처리 (0) | 2023.04.14 |
Object, Array each 함수 (0) | 2023.03.28 |
TypeScript 타입 단언 (0) | 2023.02.21 |
TypeScript 타입 추론 (0) | 2023.01.08 |