-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
콜백함수
19.06.11 15:31 작성 조회수 464
1
유니티를 공부하다보면 콜백함수란 말이 많이 나옵니다. 강좌에 콜백함수에 대한 내용이 나오나 검색해봤는데 나오지 않는 것 같습니다. 콜백함수가 뭔지 설명 좀 부탁합니다.
답변을 작성해보세요.
2
이제민
지식공유자2019.06.11
콜백 함수는, 지연되어 되돌와 불려지는 방식으로 실행되는 함수입니다.
콜백 함수라는 타입이 존재하는 것은 아니고, 어떤 함수를 콜백 함수로서 사용하는 것입니다.
델리게이트나 람다함수 등을 사용하면 함수를 변수에 저장하고 다른 함수에 입력할 수 있습니다. 다른 말로 하면, A라는 함수를 변수에 저장한 다음, B라는 함수의 입력으로 넣고선, "B의 처리가 다 끝나는 타이밍에 A를 실행해달라고 부탁하는" 방식으로 코드를 구현할 수 있습니다.
예를 들어 다음과 같은 처리가 있다고 생각해 봅시다.
action someFunction = A; //someFunction 이라는 변수로 A 함수를 저장
B(A); // A를 입력으로 주면서 B 함수를 실행
그리고 B는 다음과 같이 구현되어 있습니다.
void B(action callBack) {
// 시간이 다소 걸리는 B의 주요한 처리들...
// B의 대부분의 처리가 모두 끝났을때...
// 맨 마지막 라인에서 입력으로 받은 함수를 실행시켜줌
callBack();
}
위와 같이 하면, B함수가 끝나는 타이밍에 맞춰 A를 실행하는, 연쇄 작용을 구현할 수 있습니다.
즉, 콜백 함수의 콜백-"되돌아 부르다"라는 것은, 콜백 함수를 받아 실행하는 측이 마치 우리들에게 되돌아와서는 자신의 실행이 모두 끝난 타이밍을 알려주는 것과 유사하게 보이기 때문입니다.
0
답변 2