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. 정리

구분 설명
콜백함수란? 다른 함수에 인자로 전달되어, 나중에 호출되는 함수
왜 쓰나? 어떤 작업이 끝난 이후에 특정 작업을 수행하기 위해
어디서 주로 쓰나? 비동기 프로그래밍, 이벤트 핸들링, 반복 처리 등

한 줄 요약:

  • 콜백함수 = "내가 부르면 와서 일해줘!" 라고 다른 함수에 미리 맡기는 함수