callback ,함수 체이닝 차이

topics 700-컴퓨터과학
types 레퍼런스

함수 합성/체이닝과 콜백 함수의 차이

콜백 함수란?

  • **콜백 함수(callback function)**는 "다른 함수의 인자로 전달되어, 그 함수 내부에서 호출되는 함수"입니다23459.

  • 콜백 함수는 주로 _특정 시점_이나 _이벤트_가 발생했을 때 실행되도록 설계됩니다. 예를 들어, 반복문에서 각 요소마다 실행할 작업, 비동기 작업이 끝났을 때 실행할 함수 등이 콜백 함수입니다78.

함수 합성/체이닝이란?

  • **함수 합성(Composition)**은 여러 함수를 조합해 새로운 함수를 만드는 방식입니다. 한 함수의 결과를 다음 함수의 입력으로 넘기는 구조죠6.

  • **체이닝(Chaining)**은 여러 함수를 연속적으로 호출해, 각 결과를 다음 함수에 넘기는 패턴입니다. 파이프라인처럼 동작합니다.

핵심 차이점

구분 콜백 함수 함수 합성/체이닝
정의 다른 함수에 인자로 전달되어 내부에서 호출됨 여러 함수를 연결해 순차적으로 실행
제어권 호출 시점은 고차 함수가 결정 실행 순서는 합성된 함수의 순서대로
목적 특정 시점/이벤트에 맞춰 동작 위임 데이터 흐름을 직관적으로 연결
예시 arr.map(callback) f(g(h(x))) 또는 `a
  • 콜백 함수는 "내가 이 함수(콜백)를 너(고차 함수)에게 줄 테니, 네가 필요할 때 불러줘"라는 구조입니다. 즉, 제어권이 고차 함수에 있습니다2345.

  • 함수 합성/체이닝은 "이 함수의 결과를 다음 함수에 넘기고, 그 결과를 또 다음 함수에 넘긴다"는 식으로, 데이터가 함수들을 따라 순차적으로 흘러갑니다. 제어권은 합성된 함수의 실행 흐름에 있습니다.

예시 코드 비교

콜백 함수 예시

python

def repeat(n, callback): for i in range(n): callback(i) def print_num(x): print(x) repeat(3, print_num) # print_num이 repeat의 콜백

함수 합성/체이닝 예시

python

def f(x): return x + 1 def g(x): return x * 2 def compose(f, g): return lambda x: f(g(x)) h = compose(f, g) print(h(3)) # 7 (3*2=6, 6+1=7)


요약

  • 콜백 함수는 "내가 언제 불릴지 몰라, 네가 필요할 때 불러줘!" (제어권이 외부에 있음)

  • 함수 합성/체이닝은 "내 결과를 다음 함수에 넘길게, 쭉쭉 연결해서 실행해!" (데이터가 함수들을 따라 흐름)

이처럼, 콜백은 실행 시점의 제어권과 이벤트 중심이고, 합성/체이닝은 데이터 흐름과 함수 연결에 초점을 둡니다2346.

Citations:

  1. https://velog.io/@hayeooooon/%EC%A4%91%EC%B2%A9-%ED%95%A8%EC%88%98-%EC%BD%9C%EB%B0%B1-%ED%95%A8%EC%88%98
  2. https://1sangcoder.tistory.com/228
  3. https://velog.io/@dbstjrwnekd/callbackfunction
  4. https://saengmotmi.netlify.app/javascript-study/2021-08-23-%EC%BD%9C%EB%B0%B1-%ED%95%A8%EC%88%98/
  5. https://dodo-itstory.tistory.com/2
  6. https://www.jaenung.net/tree/1438
  7. https://sungmin93.tistory.com/87
  8. https://strap.tistory.com/entry/%EB%B9%84%EA%B5%90-Callback%ED%95%A8%EC%88%98-Promise%ED%95%A8%EC%88%98
  9. https://dbdj.tistory.com/15
  10. https://jeongeuni.tistory.com/109

Perplexity로부터의 답변: pplx.ai/share