본문 바로가기

JavaScript/AboutJS

[JavsScript] 함수의 합성과 데이터 파이프 라인 1. go - 즉시 실행되는 함수 체인 만들기

 

함수를 값으로 다룰 수 있다는 자바스크립트의 특성 ( 일급함수 ) 때문에

정말 다채로운 표현이 가능한 데, 그걸 배우는 데에는 아래 강의가 개인적으로 최고이지 않을까 싶습니다.

 

참고 : 함수형 프로그래밍과 JavaScript ES6+ 유인동 님
https://www.inflearn.com/course/functional-es6

 

함수형 프로그래밍과 JavaScript ES6+ 강의 | 유인동 - 인프런

유인동 | ES6+와 함수형 프로그래밍을 배울 수 있는 강의입니다. 이 강좌에서는 ES6+의 이터러블/이터레이터/제너레이터 프로토콜을 상세히 다루고 응용합니다. 이터러블을 기반으로한 함수형 프

www.inflearn.com

 

 

  const go = (...args) => args.reduce((a, f) => f(a));
  go(
    0, 
    a => a + 1,
    a => a + 10,
    a => a + 100,
    console.log // 111
  )

여기서 go 라는 이름의 사용자 정의 함수를 만들어 사용하는 데 아래와 같은 장점이 있습니다.

 

1. 함수 합성 (Function Composition)


go 함수는 여러 함수를 순차적으로 실행하여 하나의 새로운 함수처럼 동작하게 합니다.

 

  • 첫 번째 인자는 초기값으로 사용됩니다.
  • 이후의 각 함수는 이전 함수의 결과를 입력으로 받아 처리합니다.
  • 최종 결과는 마지막 함수의 출력입니다.


2. 데이터 파이프라인 생성


데이터 파이프라인은 다음과 같은 개념입니다

  • 정의
    데이터 파이프라인은 데이터가 한 지점에서 다른 지점으로 이동하면서 여러 단계의 처리 과정을 거치는 
    일련의 과정을 말합니다.
  • 주요 특징
    • 순차적 처리: 데이터는 파이프라인의 각 단계를 순서대로 통과합니다.
    • 변환: 각 단계에서 데이터는 특정 방식으로 변환되거나 처리됩니다.
    • 모듈성: 각 단계는 독립적인 함수나 작업으로 구성될 수 있습니다.
  • 장점
    • 코드 가독성 향상: 복잡한 데이터 처리 과정을 명확하게 표현할 수 있습니다.
    • 유지보수 용이성: 각 단계를 독립적으로 수정하거나 추가/제거할 수 있습니다.
    • 재사용성: 파이프라인의 일부를 다른 상황에서 재사용할 수 있습니다.


3. 코드 가독성 향상
복잡한 중첩 함수 호출을 flat하고 읽기 쉬운 형태로 만들어줍니다.


4. 함수형 프로그래밍 지원
순수 함수들을 조합하여 더 복잡한 연산을 수행할 수 있게 해줍니다.

 

 

 

다음글

https://daunje0.tistory.com/174

 

[JavsScript] 함수의 합성과 데이터 파이프라인 2: pipe - 재사용 가능한 함수 파이프라인 만들기

https://daunje0.tistory.com/173 [JavsScript] 함수의 합성과 데이터 파이프 라인 1. go함수를 값으로 다룰 수 있다는 자바스크립트의 특성 ( 일급함수 ) 때문에정말 다채로운 표현이 가능한 데, 그걸 배우는

daunje0.tistory.com