7주차_참고 : 콜백함수 - dhryu60/SmartDevice_2025-1 GitHub Wiki
https://www.youtube.com/watch?v=-iZlNnTGotk
https://www.youtube.com/watch?v=TAyLeIj1hMc
**콜백함수(callback function)**란,
**"다른 함수에 인자로 넘겨지는 함수"**를 말해.
그리고 그 다른 함수가 어떤 시점에 이 함수를 '호출(call back)'하는 것을 의미해.
1. 콜백함수의 핵심 개념
- 함수도 값처럼 다룰 수 있다는 게 전제야.
- 그래서 함수를 다른 함수의 '매개변수'로 넘겨줄 수 있어.
- 그러면 넘겨받은 함수가 필요할 때 그 함수를 '불러서 실행(call back)' 하는 거야.
2. 예제 (JavaScript 기준)
function greeting(name) {
console.log(`Hello, ${name}!`);
}
function processUserInput(callback) {
const name = "Alice";
callback(name); // 여기서 greeting 함수를 호출하는 것!
}
processUserInput(greeting);
- 여기서
greeting
이 콜백 함수야. processUserInput
안에서greeting(name)
을 호출했지?- 즉, "내가 이름을 준비하면, 네가 알아서 인사하는 함수를 실행해줘." 이런 식인 거야.
3. 콜백이 왜 필요할까?
- 어떤 일이 끝난 **"이후"**에 추가로 무언가를 하고 싶을 때 유용해.
- 특히 비동기 작업 (예: 파일 읽기, 네트워크 요청)에서는 작업이 끝난 후에 뭔가를 해야 하잖아? 그때 콜백함수가 꼭 필요해.
예를 들면:
fs.readFile('file.txt', function(err, data) {
if (err) {
console.error(err);
return;
}
console.log(data.toString());
});
파일 읽기가 완료되었을 때, 그 결과를 처리하는 함수를 콜백으로 넘기는 거야.
4. 정리
구분 | 설명 |
---|---|
콜백함수란? | 다른 함수에 인자로 전달되어, 나중에 호출되는 함수 |
왜 쓰나? | 어떤 작업이 끝난 이후에 특정 작업을 수행하기 위해 |
어디서 주로 쓰나? | 비동기 프로그래밍, 이벤트 핸들링, 반복 처리 등 |
한 줄 요약:
- 콜백함수 = "내가 부르면 와서 일해줘!" 라고 다른 함수에 미리 맡기는 함수