HOF, 고차 함수

민겸·2022년 10월 24일
0

JavaScript

목록 보기
13/20

HOF란?

HOF는 High-Order-Function의 약자로, 고차함수라고 부른다.

그럼 어떤 걸 고차함수라고 부를까?
고차함수가 되기 위해서는 다음의 조건 중 최소한 하나를 만족해야 한다.

  1. 하나 이상의 함수를 인자로 받는다.
  2. 함수를 리턴한다.

이런 고차함수는 주변에서 많이 찾아볼 수 있는데, 그 예시들이 바로 자바스크립트에 내장된 배열 메서드들이다. Filter, Map, Reduce 등이 있다.

Map함수를 잘 보면, 배열의 각 요소에 적용할 패턴을 함수를 통해 적용시키는 것을 볼 수 있다. FiterReduce도 마찬가지로 함수를 인자로 받아 패턴을 추상화했다.

라이브러리들 중 lodash의 함수들도 HOF로 만들어진 것들이 많다. 그리고 특히 React에서 이 HOF를 적극적으로 활용하고 있는데 함수형 컴포넌트에 HOF를 적용시켜서 나온 것이 바로 HOC High-Order-Component이다.

HOF가 함수를 이용해서 새로운 함수를 합성할 수 있으면, HOC는 컴포넌트를 이용해서 새로운 컴포넌트로 변환할 수 있다. 고차 컴포넌트는 ReduxconnectRelaycreateFragmentContainer와 같은 서드 파티 React 라이브러리에서 흔하게 볼 수 있으므로 사용법에 익숙해지는 것이 좋을 것 같다.

profile
기술부채상환중...

0개의 댓글