1. [프로그래밍] 콜백 기법, 콜백 함수
ㅇ 호출하는 쪽과 호출받는 쪽이 반전되어짐 (제어권 역전)
ㅇ 사용 방식
- 호출하는 함수에, 콜백 함수를 인수로써 전달하고,
- 호출된 함수의 내부에서, 인수로써 전달받은 그 콜백 함수를 실행시킴
ㅇ 콜백 함수의 개요
- 다른 함수에 인수로써 넘겨질 수 있는 함수 임
. 즉, 함수(또는,객체)를 매개변수로써 전달하고서,
. 그것으로하여금 역 호출 등을 하게 함
- 이때, 인수(콜백 함수)로써 넘겨 받은 함수(호출된 함수)는,
. 그 인수(콜백 함수)가 작업하는 내용에는 관여하지 않음
ㅇ 콜백 함수의 특징
- 제어권을 콜백 함수에 부여 가능 (제어 역전)
. 호출되는 함수에 인수로써 넘겨지는 콜백 함수의 경우에,
. 호출되는 함수 쪽에서 인수로써 넘겨진 콜백 함수에게 제어권을 부여하게 됨
- 콜백 함수의 선택 주체는 호출자
. 어떤 콜백 함수를 쓸지는 호출자의 고유 권한 임
- 호출된 함수는 콜백 함수의 작업 내용에 관여 안함
. 호출된 함수는 콜백 함수를 실행하지만,
. 그 콜백 함수가 작업하는 내용에는 관여하지 않게됨
ㅇ 콜백 함수의 사용 시기
- 주로, 특정 이벤트(성공,실패,종료 등) 발생시, 그에 맞춘 콜백 함수를 수행
ㅇ 콜백 함수의 용도 例)
- 콜백 함수를 사용한 비동기식 처리 모델 (JavaScript에서 빈번히 사용됨)
. 여기서, 비동기식 처리 모델 이란?
.. 호출될 콜백 함수를 미리 파라미터(매개변수)로써 전달해 놓고,
.. 특정 이벤트(처리 종료 등)가 발생하면,
.. 콜백 함수를 호출케 하는 것
. 주요 例) 타이머 등
2. [일반 전화] 콜백 서비스
ㅇ 걸려온 전화를 끊은 후에 다시 발신자에게 전화를 되걸어주는 것
ㅇ 국제전화 콜백 서비스
- 두 나라 사이의 국제 전화 요금이 차이가 나는 것을 이용
- 주로, 요금이 싼 나라(미국 등)의 사업자들이 요금이 상대적으로 비싼 나라(통신사업을
독점하거나 국가에서 운용 등)에 진출하여, 그 나라의 가입자가 거는 국제 전화를
콜백 기능에 의해 자기 나라의 발신으로 처리해 주고 요금을 받는 형태
- 즉, 국제 전화 요금이 비싼 측에서 전화를 거는 경우에, 호출 신호만을 보낸 뒤 끊으면
상대측에서 되걸어 주는 등의 방법으로 전화 요금을 싸게하고 그 대가를 받는 서비스