프로그래밍에서 CallBack(콜백), 또는 Callback Function)은 다른 코드의 매개변수로서 전달되어 나중에 호출을 할 수 있는 함수를 의미합니다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라서 즉시 실행항 수도 있고, 아니면 나중에 실행 할 수도 있습니다. 일반적으로 콜백을 전달 즉, 함수를 매개변수로 전달할 때는 함수의 포인터형 이나 람다함수를 사용하기도 합니다.
예시로
함수 포인터를 이용한 콜백
#include <iostream>
using namespace std;
// 콜백 함수: 파일 열기 완료 후 실행할 함수
void OnFileOpened()
{
cout << "[콜백] 파일 열기 완료 후 처리 중.." << endl;
}
// 파일을 여는 함수 (콜백 함수 포인터 전달)
void FileOpen(void (*callback)())
{
cout << "[FileOpen] 파일을 여는 중입니다..." << endl;
// 파일 열기 시뮬레이션
cout << "[fileOpen] 파일 열기 완료!" << endl;
// 콜백 함수 호출
callback();
}
int main()
{
FileOpen(OnFileOpened);
}
위의 예시 코드 구문 처럼 콜백함수는 함수를 매개변수로 전달받아 `OnFileOpened` 함수가 다른 영역에서 호출이 될 수 있도록 할 수 있습니다. 짦은 코드 구문이지만 `FileOpen(OnFileOpened)' 구문은 `main` 함수의 도입부가 될 수도 있고 마지막 종료 전 부분이 될 수 있는것 처럼, 콜백 함수의 호출 시점은 프로그래머가 원하는 시점에 할 수 가 있기도 합니다. 즉, 호출 시점도 프로그래머가 원하는 곳에 할 수 있다는건 해당 기능을 사용하고 돌아오는 지점도 선택할 수 있다는 말이 되기도 합니다.
'Software Engineering > Software Development Principles' 카테고리의 다른 글
Hash Code (해시 코드) (0) | 2025.05.26 |
---|---|
Process & Thread(프로세스 & 스레드) (0) | 2025.05.22 |
큐 (Queue) (0) | 2025.05.19 |
Virtual Memory ( 가상 메모리 ) (0) | 2025.05.16 |
객체 지향 설계의 5가지 원칙 - S.O.L.I.D (0) | 2025.05.16 |