JS : 콜백 함수(Callback Function)

daymoon_·2022년 2월 8일
0

JAVASCRIPT

목록 보기
12/23
post-thumbnail

콜백 함수(Callback Function)

🔗 참고자료
CodingRestaurant 코어자바스크립트 요약 - 0.4 콜백함수
Solve a Problem 콜백함수
DaleSeo [자바스크립트] 비동기 처리 1부 - callback
코어 자바스크립트 콜백

다른 코드 (함수 또는 메서드)에게 인자를 넘겨줌으로써 그 제어권도 함께 위임한 함수 콜백 함수를 위임받은 코드는 자체적인 내부 로직에 의해 콜백 함수를 적절한 시점에 실행 JS에서 함수는 1급 객체이므로, 인자 전달 시 함수를 전달할 수 있기 때문에 콜백함수가 가능하다.

이벤트 리스너와 같이 특정 트리거가 발생했을 때 완료시점에 호출받기 위한 함수 ▶ 매개변수로 전달하는 함수


📌 일급 객체
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 일급 객체라고 한다. 일반적으로 적용가능한 연산은 다음과 같다.

  • 런타임에 생성할 수 있다.
  • 변수나 자료구조에 저장할 수 있다.
  • 함수의 매개 변수에 전달할 수 있다.
  • 함수의 반환값으로 사용할 수 있다.

콜백 함수를 통한 비동기 처리

비동기(Asynchronous) 함수란 쉽게 설명하면 호출부에서 실행 결과를 기다리지 않아도 되는 함수이다. 반대로 동기 함수(Synchronous)함수는 호출부에서 실행 결과가 return될 때 까지 기다려야 하는 함수이다.


콜백 지옥 (Callback Hell)

🔗 참고자료
리브레 위키 콜백 지옥
코어 자바스크립트 멸망의 피라미드
내위키 콜백지옥

자바스크립트를 이용한 비동기 프로그래밍시 발생하는 문제로서, 함수의 매개변수로 넘겨지는 콜백 함수가 반복되어 코드의 들여 쓰기 수준이 감당하기 힘들 정도로 깊어지는 현상을 말한다.

즉, 깊은 중첩 코드를 만들어 내는 패턴이며 소위 콜백 지옥 혹은 멸망의 피라미드라고 불린다.

📌 Promise가 자바스크립트 생태계에서 표준처럼 사용되며 이를 이용한 async/await 패턴 역시 많이 사용하고 있어 콜백 지옥을 겪는 일이 거의 없어졌다.


🗓️ 수정 및 추가

✅ 2022.02.24

  • 썸네일 변경

✅ 2022.04.23

  • 콜백함수 설명 추가
profile
미지의 공간🌙

0개의 댓글