Callback function
"이 리포트를 시간순으로 정리해 주세요.
그리고, 정리가 끝나면 그 결과를 저에게 보고해 주세요."
여기서
시간순 정리는 - main function
결과 보고는 - callback function
입니다.
즉, 다른 함수의 인자로 전달되는 함수를 말합니다.
이 함수는 전달받은 함수가 특정 작업을 마친 뒤에 호출됩니다.
왜 콜백 함수를 사용할까요?
콜백 함수는 주로 비동기적인 작업을 처리할 때 사용합니다.
웹 개발에서는 서버에서 데이터를 가져오거나 파일을 읽는 것처럼 시간이 걸리는 작업이 많은데, 이런 작업이 끝날 때까지 무작정 기다릴 수 없기 때문입니다.
콜백 함수를 사용하면 "데이터를 가져오는 작업이 끝나면 이 함수를 실행해 줘!"라고 미리 약속해 둘 수 있습니다.
이를 통해 기다리는 시간 동안 다른 작업을 처리할 수 있어 프로그램의 효율성을 높일 수 있습니다.
콜백 함수의 간단한 예시
일상생활에 비유하자면, 세탁소에 옷을 맡기는 것과 비슷합니다.
**당신(함수 A)**이 세탁소 주인에게 옷을 맡기면서
"세탁이 끝나면 전화 주세요." 라고 말합니다. 여기서 **"전화 주세요"**가 바로 콜백 함수입니다.
세탁소 주인(다른 함수)은 옷 세탁(특정 작업)을 진행하는 동안 당신은 다른 일을 할 수 있습니다.
세탁이 끝나면 주인이 당신에게 전화(콜백 함수 호출)를 걸어 세탁이 완료되었음을 알려줍니다.
Ex
// A라는 함수가 B라는 함수를 인자로 받습니다.
function A(callback) {
// 1초 뒤에 '작업 완료' 메시지를 출력하고,
// 전달받은 콜백 함수를 호출합니다.
setTimeout(function() {
console.log('작업 완료!');
callback(); // <-- 콜백 함수 호출
}, 1000);
}
// B라는 콜백 함수를 정의합니다.
function B() {
console.log('콜백 함수 실행!');
}
// 함수 A를 호출하면서 B를 인자로 전달합니다.
A(B);
// 출력 결과:
// (1초 후)
// 작업 완료!
// 콜백 함수 실행!
JavaScript
위 예시에서 A 함수는 B라는 콜백 함수를 전달받아, 자신의 작업이 끝난 후 B를 호출합니다.
이처럼 콜백 함수는 비동기 작업의 결과를 다루는 데 유용하게 사용됩니다.
