:: ADVANCE ::

[CALLBACK] CALLBACK Function 본문

Image Processing/Windows Programming

[CALLBACK] CALLBACK Function

KSJ14 2015. 12. 17. 00:47
반응형

[CALLBACK] CALLBACK Function 


callback 함수는 WinAPI 프로그래밍 할 때 자주 보는 함수이다.


-> 호출되는 함수를 알려주어 다른 프로그램 또는 다른 모듈에서 함수를 호출하게 하는 방법.

일반적으로 운영체제가 호출할 application의 함수를 지정해 특정한 

event 또는 message가 발생되었을 때 호출되도록 지정할 수 있는 함수를 말한다.


그냥 함수 호출과 callback 함수 호출의 차이점은 "제어권"에 있다.


일반적으로 함수 호출은 조건 1이면 함수 1을 호출해서 처리, 2이면 2를 호출해서 처리 하는 방식이다.

즉, 어떤 처리가 필요할 때 함수를 호출해서 작업을 맡기는 식이다.


하지만 callback 함수는 사용자가 필요할 때 호출해서 사용하는 것이 아니고,

'어떤 이벤트가 발생 했을 때 나에게 알려달라' 라고 하는 것이다.

즉, 호출 되는 것이라고 생각해야 한다.





1. 이벤트 발생 시 호출할 handler를 등록

2. 이벤트가 발생하여 handler를 호출


WinAPI에서는 handler를 등록한 후 이벤트가 떨어지면 handler가 호출되고 그 안에서 필요한 처리를 하게 되는 것이다.



추가로,


callback이란 디자인 패턴 중 하나인 Observer(옵저버) 패턴에서 나온 개념으로써 객체의 상태 변화(이벤트)가 발생 하였을 경우에 이러한 사실을 함수를 통해 전달하게 되는데, 이를 콜백 함수라 한다.


자바스크립트에서 콜백 함수는 키보드나 마우스 클릭과 같은 디바이스 이벤트 뿐만 아니라, Ajax, 데이터 처리 등 많은 부분에서 사용되고 있다.



[참고] http://blog.goldface.kr/45

[참고] http://blog.jui.io/?p=19

반응형
Comments