콜백 함수(callback function)

  • 함수를 다른 함수의 인자로 전달하고 실행할 수 있는 기능
  • 유니크한 문법적 특징을 가지고 있는 것이 아니라 호출방식에 의한 구분
  • 비동기적 프로그래밍으로 싱글스레드의 멈춤을 방지한다 => 페이지 로딩 속도 상승

콜백 함수의 특징

  1. 함수를 값으로 다룸: 콜백 함수는 함수를 일급 객체로 다루는 프로그래밍 언어에서 가능합니다. 이는 함수를 변수에 할당하고, 다른 함수의 인자로 전달하거나 함수의 반환 값으로 사용할 수 있음을 의미합니다.
  2. 비동기 작업 처리: 주로 비동기적인 작업에서 활용됩니다. 예를 들어, 파일을 읽거나 데이터베이스에서 데이터를 조회할 때 콜백 함수를 사용하여 작업이 완료되면 특정 동작을 수행하도록 지정할 수 있습니다.
  3. 이벤트 처리: 이벤트 처리에 자주 사용됩니다. 예를 들어, 웹 애플리케이션에서 버튼 클릭과 같은 이벤트가 발생했을 때, 해당 이벤트에 대한 콜백 함수를 등록하여 이벤트가 발생할 때마다 원하는 동작을 수행할 수 있습니다.
  4. 제어 흐름 전달: 콜백 함수는 프로그램의 제어 흐름을 다른 함수로 전달할 수 있습니다. 예를 들어, 정렬 알고리즘을 사용할 때 비교 함수를 콜백으로 전달하여 정렬 순서를 사용자가 정의할 수 있습니다.

콜백 함수의 비동기적 사용 예시

  • 일반적인 함수 호출
function myFunction(){
  console.log("------- 함수 실행 -------");
}

console.log("------- 시작 -------");

myFunction();

console.log("------- 끝 -------");
------- 시작 -------
------- 함수 실행 -------
------- 끝 -------
  • setTimeout함수 사용
function myFunction(){
  console.log("------- 함수 실행 -------");
}

console.log("------- 시작 -------");

setTimeout(myFunction, 0);

console.log("------- 끝 -------");
------- 시작 -------
------- 끝 -------
------- 함수 실행 -------

정리

  • 콜백 함수란 특정 이벤트 발생이나 시점에 의해 호출되는 함수로 일반적인 함수와 호출방식에 의해 구분됩니다. 콜백함수를 사용하면 비동기적 프로그래밍으로 사용자에게 신속한 서비스를 제공할 수 있다.

참고

보완/복습

  • 2023.11.07 복습