본문 바로가기

무언가 만들기 위한 지식/IT 용어관련

CallBack Function(콜백 함수) :: 콜백함수에 대한 간단한 이야기.


아아, 안녕하십니까? xx 상담원입니다. 다시 전화드리겠습니다.~

이번에 아주 잠깐 이야기 해볼건 바로 백함수에 관한 이야기입니다. 
이런저런 다양한 환경의 프로그래밍들을 해보다 보면 바로 요녀석 콜백함수란 용어를 빼놓을 수 없죠.
대부분의 시스템에서 사용되고 있는 내용입니다.
근데 제 기억으로는 거의 초창기 요녀석의 개념을 이해하지 못해서 꽤나 오래 왜 이름이 콜백함수인지 고민한적이 있었는데, 최근 들은 강의에서 어떤 분이 깔끔하게 정리해 주셨네요. 흠. 

일단 요약하자면, 콜백함수란 API 의 반대개념이라고 볼 수 있습니다.
또한 말그대로 콜백! CallBack > 반대로 부른다고 해석할 수 있지요.

우리는 작성하는 일반 코드내에서 
보통 API SDK에서 제공해주는 함수(Function)들을 호출(Call)하여 사용하곤 한다.
이런 방식의 경우, 어떤 이벤트를 제어하기 위해서는 별도의 쓰레드를 생성하여 무한루프로 실시간 검사하는 꽤나 무겁고 살짝 무식한 프로그램들을 만들어야한다.

보통 이럴때, 사용하는 것이 콜백(CallBack) 함수.
물론 시스템상 CallBack함수를 만들어 등록하는 방식이 제공되어야 한다.
Windows 프로그램상에서 On??Event()를 통해 등록하는 방식이나, 안드로이드 상에서 Listener를 등록하는 방식이 이와 같다.
콜백함수라는 말 그대로 일반 Call의 반대 방향을 말한다.
통상적으로 쓰듯이 우리가 시스템상의 함수를 Call하는 것이 아니라, 시스템에서 우리가 만들고 등록한 함수를 Call하는 방식.

아무래도 API와 반대 의미라고 생각하면 간단해지는듯 합니다.
윈도우를 따져보면 메시지 루프에 자신이 특정 메시지를 넣고, 특정 이벤트 발생시 호출한다는 개념으로 생각할 수도 있군요.
뭐, 여기저기서 많이 보게 될껍니다.