끄적끄적

CallBack 함수 본문

기타

CallBack 함수

widruv 2016. 2. 9. 11:38

정의

- 프로그래밍에서 콜백(callback)은 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 

- 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.


일반적으로 콜백수신 코드로 콜백 코드(함수)를 전달할 때는 콜백 함수의 포인터 (핸들), 서브루틴 또는 람다함수의 형태로 넘겨준다. 콜백수신 코드는 실행하는 동안에 넘겨받은 콜백 코드를 필요에 따라 호출하고 다른 작업을 실행하는 경우도 있다. 다른 방식으로는 콜백수신 코드는 넘겨받은 콜백 함수를 '핸들러'로서 등록하고, 콜백수신 함수의 동작 중 어떠한 반응의 일부로서 나중에 호출할 때 사용할 수도 있다 (비동기 콜백). 콜백은 폴리모피즘과 제네릭프로그래밍의 단순화된 대체 수법이며, 콜백 수신 함수의 정확한 동작은 콜백 함수에 의해 바뀐다. 콜백은 코드 재사용을 할 때 유용하다.


상대방에게 전화를 한 번 걸어서 전화번호만 알려주고 전화를 끊은 후 상대방이 다시 나에게 전화를 걸어주는 것과 비슷하다 해서 Call Back이라는 이름이 붙여졌다.



 


Call : 행위가 주체가 되어서 특정 조건을 만족하는지 안 하는지를 계속 체크 함. '됐니? 안 됐니?'.

Call Back : 특정 조건이 주체가 되어 조건 만족시 행위에게 '너 일해' 라고 통보. 


간단하게, 여자친구와 데이트를 하러 가기로 한 당일, 


Call Ex) 

남자가 애인에게 

"준비 다 됐어?" 하고 1분마다 물어보고 준비 다 됐을 때, 데이트 하러 가는 것

=> 남자도 일 못하고 계속 전화하고 있고 여자도 짜증나겠죠


Call Back Ex)

애인에게 "준비 다 되면 전화 해~~" 하고 딴 짓 하고 있다가 전화 오면 데이트 하러 가는 것



== Call ==

int main() {  while(true)

{

if( areYouReady() )

{

    goOnADate();

    break;

}

sleep(60);

}

 return 0;

}


== Call Back ==

public class Layout extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnCall=(Button)findViewById(R.id.call); btnCall.setOnClickListener(new Button.OnCallListener() { public void onCall(View v) 

{

goOnADate(); } }); } }


'기타' 카테고리의 다른 글

static 개념  (0) 2016.03.26
프롬프트에서 날씨 정보 보기  (0) 2016.02.22
인터페이스 개념  (0) 2016.02.21
Base 64 - 개요(1)  (0) 2016.01.07
Comments