• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

콜백함수

19.06.11 15:31 작성 조회수 464

1

유니티를 공부하다보면 콜백함수란 말이 많이 나옵니다. 강좌에 콜백함수에 대한 내용이 나오나 검색해봤는데 나오지 않는 것 같습니다. 콜백함수가 뭔지 설명 좀 부탁합니다.

답변 2

·

답변을 작성해보세요.

2

콜백 함수는, 지연되어 되돌와 불려지는 방식으로 실행되는 함수입니다.

콜백 함수라는 타입이 존재하는 것은 아니고, 어떤 함수를 콜백 함수로서 사용하는 것입니다.

 

델리게이트나 람다함수 등을 사용하면 함수를 변수에 저장하고 다른 함수에 입력할 수 있습니다. 다른 말로 하면, A라는 함수를 변수에 저장한 다음, B라는 함수의 입력으로 넣고선, "B의 처리가 다 끝나는 타이밍에 A를 실행해달라고 부탁하는" 방식으로 코드를 구현할 수 있습니다.

예를 들어 다음과 같은 처리가 있다고 생각해 봅시다.

action someFunction = A; //someFunction 이라는 변수로 A 함수를 저장

B(A); // A를 입력으로 주면서 B 함수를 실행

 

그리고 B는 다음과 같이 구현되어 있습니다.

void B(action callBack) {
    // 시간이 다소 걸리는 B의 주요한 처리들...
    // B의 대부분의 처리가 모두 끝났을때...

    // 맨 마지막 라인에서 입력으로 받은 함수를 실행시켜줌
    callBack();
}

위와 같이 하면, B함수가 끝나는 타이밍에 맞춰 A를 실행하는, 연쇄 작용을 구현할 수 있습니다.

즉, 콜백 함수의 콜백-"되돌아 부르다"라는 것은, 콜백 함수를 받아 실행하는 측이 마치 우리들에게 되돌아와서는 자신의 실행이 모두 끝난 타이밍을 알려주는 것과 유사하게 보이기 때문입니다.

0

그럼날아봐님의 프로필

그럼날아봐

2019.07.01

오! 저도 콜백함수가 뭔지 궁금했었는데 자세히 설명해 주셔서 감사합니다. 레트로님!

질문해 주신분도 감사하구요!