콜백 함수(callback function)
콜백 함수(callback function)
- 함수를 다른 함수의 인자로 전달하고 실행할 수 있는 기능
- 유니크한 문법적 특징을 가지고 있는 것이 아니라 호출방식에 의한 구분
- 비동기적 프로그래밍으로 싱글스레드의 멈춤을 방지한다 => 페이지 로딩 속도 상승
콜백 함수의 특징
- 함수를 값으로 다룸: 콜백 함수는 함수를 일급 객체로 다루는 프로그래밍 언어에서 가능합니다. 이는 함수를 변수에 할당하고, 다른 함수의 인자로 전달하거나 함수의 반환 값으로 사용할 수 있음을 의미합니다.
- 비동기 작업 처리: 주로 비동기적인 작업에서 활용됩니다. 예를 들어, 파일을 읽거나 데이터베이스에서 데이터를 조회할 때 콜백 함수를 사용하여 작업이 완료되면 특정 동작을 수행하도록 지정할 수 있습니다.
- 이벤트 처리: 이벤트 처리에 자주 사용됩니다. 예를 들어, 웹 애플리케이션에서 버튼 클릭과 같은 이벤트가 발생했을 때, 해당 이벤트에 대한 콜백 함수를 등록하여 이벤트가 발생할 때마다 원하는 동작을 수행할 수 있습니다.
- 제어 흐름 전달: 콜백 함수는 프로그램의 제어 흐름을 다른 함수로 전달할 수 있습니다. 예를 들어, 정렬 알고리즘을 사용할 때 비교 함수를 콜백으로 전달하여 정렬 순서를 사용자가 정의할 수 있습니다.
콜백 함수의 비동기적 사용 예시
- 일반적인 함수 호출
function myFunction(){
console.log("------- 함수 실행 -------");
}
console.log("------- 시작 -------");
myFunction();
console.log("------- 끝 -------");
------- 시작 -------
------- 함수 실행 -------
------- 끝 -------
- setTimeout함수 사용
function myFunction(){
console.log("------- 함수 실행 -------");
}
console.log("------- 시작 -------");
setTimeout(myFunction, 0);
console.log("------- 끝 -------");
------- 시작 -------
------- 끝 -------
------- 함수 실행 -------
정리
- 콜백 함수란 특정 이벤트 발생이나 시점에 의해 호출되는 함수로 일반적인 함수와 호출방식에 의해 구분됩니다. 콜백함수를 사용하면 비동기적 프로그래밍으로 사용자에게 신속한 서비스를 제공할 수 있다.
참고
-
ChatGPT-4.0
보완/복습
- 2023.11.07 복습