관심쟁이 영호

[Callback Method] 콜백함수? ㅣ 자바에서는 어떻게 써야할까? 본문

학교공부/자바의 왕!

[Callback Method] 콜백함수? ㅣ 자바에서는 어떻게 써야할까?

관심쟁이 영호 2021. 3. 24. 16:57
반응형

안녕하세요!

관심쟁이 영호입니다.

 

오늘은 콜백함수에 대해서 공부를 해볼거에요!

 

콜백 함수 란?

프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.

(출처: 위키백과)

 

위키백과에서는 콜백함수를 저렇게 정의하고 있어요!

이제부터 관심쟁이 영호의 관점으로 살펴볼게요!

(공부하는 과정이라서 완벽한 이해가 아닐 수 있어요!)

 

자바를 쓰는 제 입장에서 쉽게 풀어보자면.

콜백함수는 어떠한 행위를 하면 자동으로 실행되는 함수를 말하는 느낌이에요!

코드로 살펴볼게요!

 

public void First_Method(){
	callback_method();
}

public void Callback_Method(){

	System.print.out("내가 콜백함수다!");
}

여기서 보면

First_Method()를 실행했을 때, Callback_Method()가 자동으로 실행되는 것을 살펴볼 수 있어요!

 

한마디로 내가 어떠한 행위를 했을 때(First_Method 호출) 콜백함수(Callback_Method) 콜!

이 되는 것을 살펴볼 수 있네요!

 


그럼 이러한 원리를 조금 더 확장하여 생각해보죠!

휴대폰 단말기의 어플리케이션 서비스로 생각해볼게요.

 

휴대폰 단말기의 "Button"을 클릭하면

button 클릭 이벤트가 발생이 됩니다!

 

이때 Button 이벤트리스너를 만든 사람이 클릭이 되었을 때,

실행되는 함수를 미리 선언해두었어요!

 

살짝만 맛볼게요!

Button button;
button = findViewById(R.id.button);  //Xml파일에서 버튼 찾기!

button.setOnClickListener(new View.OnClickListener() { //클릭 이벤트 리스너!
            @Override 
            public void onClick(View v) { //미리 선언해놓은 onClick함수! 
               
              Log.d("Button Click", " 클릭!");
            }
        });

여기서 보면 onClick() 함수가 콜백함수라고 생각하시면 됩니다!

 


콜백함수를 쓰는이유?

여러가지 이유가 있어요!

1. 코딩을 하는 모든 사람이 해당 기능을 사용할 때, 똑같은 처리를 하기 위함!

 

2. 비동기처리를 해야할 때, 유용하다!

 

이렇게 볼 수 있겠네요!

그럼 다음 시간에는

쓰는 이유에 대해서 더 상세히 살펴볼게요!

 

 

300x250
Comments