Java | Spring
Java 콜백 메서드 이해와 구현
@leem
2025. 1. 9. 17:00
콜백 메서드
콜백 메서드는 특정 작업이 완료되었을 때 호출되는 메서드입니다.
예를 들어, "버튼이 눌리면 이 일을 해줘!"와 같이 이벤트와 함께 동작을 실행하는 방식을 말해요.
콜백 메서드를 사용하면 코드를 재사용할 수 있고, 더 유연하게 설계할 수 있습니다.
필요성
- 이벤트 기반 동작: 버튼 클릭, 데이터 로드 완료 등 특정 이벤트가 발생했을 때 실행할 작업을 정의할 수 있어요.
- 코드 재사용성: 한 번 만들어 놓으면 여러 상황에서 동일한 메서드를 재사용할 수 있습니다.
- 유연성: 실행 동작을 나중에 정의하거나 변경할 수 있어요. 코드를 더 깔끔하고 확장성 있게 만듭니다.
작동 원리
콜백 메서드의 핵심은 인터페이스와 메서드 구현입니다.
- 인터페이스로 메서드의 틀 정의: 어떤 작업을 할지 선언만 합니다.
- 구현 클래스로 구체적인 동작 정의: 인터페이스를 구현하여 실제 동작을 코딩합니다.
- 콜백 호출: 이벤트가 발생하면, 등록된 메서드를 호출하여 정의된 동작을 실행합니다.
예제: 버튼 클릭 이벤트
콜백 메서드를 사용하는 간단한 예제 🛠️
1. 인터페이스 정의하기
먼저, 버튼이 클릭되었을 때 실행할 콜백 메서드를 정의합니다.
이 인터페이스는 버튼 클릭 이벤트에서 호출될 메서드를 제공합니다.
interface IButtonListener {
void clickEvent(String event); // 콜백 메서드 선언
}
2. 버튼 클래스 구현
버튼 클래스는 실제로 이벤트를 실행하거나 콜백 메서드를 호출하는 역할을 합니다.
주요 기능:
- addEventListener: 이벤트를 등록하는 메서드.
- click: 버튼 클릭 시 등록된 콜백 메서드를 호출.
public class Button {
private String name; // 버튼 이름
private IButtonListener iButtonListener; // 콜백 메서드 저장 변수
// 버튼 생성자
public Button(String name) {
this.name = name;
}
// 버튼 클릭 시 실행되는 메서드
public void click(String message) {
if (iButtonListener != null) { // 콜백 메서드가 등록된 경우만 실행
iButtonListener.clickEvent(message);
}
}
// 콜백 메서드 등록
public void addEventListener(IButtonListener iButtonListener) {
this.iButtonListener = iButtonListener;
}
}
3. 메인 클래스: 콜백 메서드 실행
이제 버튼 객체를 생성하고, 콜백 메서드를 등록한 후 실행해봅시다.
주요 동작:
- 버튼을 클릭했을 때, 등록된 콜백 메서드가 호출됩니다.
- 콘솔에 클릭 이벤트 결과가 출력됩니다.
public class Main {
public static void main(String[] args) {
// 1. 버튼 객체 생성
Button button = new Button("OK Button");
// 2. 콜백 메서드 등록
button.addEventListener(new IButtonListener() {
@Override
public void clickEvent(String event) {
System.out.println("버튼 이벤트 발생: " + event);
}
});
// 3. 버튼 클릭 시 콜백 메서드 실행
button.click("OK 버튼이 눌렸습니다!");
}
}
실행 결과
버튼 이벤트 발생: OK 버튼이 눌렸습니다!
코드 해석
- 인터페이스 선언: IButtonListener는 콜백 메서드의 구조를 정의합니다.
- 이벤트 등록: addEventListener 메서드로 콜백을 등록합니다.
- 이벤트 호출: click 메서드를 통해 등록된 콜백 메서드를 실행합니다.
포인트
- 콜백 메서드의 유연성: 버튼 클릭 시 어떤 작업을 할지 자유롭게 정의할 수 있어요.
- 인터페이스 활용법: 인터페이스는 동작을 정의할 때 유용합니다.
- 익명 클래스: 익명 클래스를 사용해 간단하게 콜백 메서드를 구현할 수 있어요.
콜백 메서드의 활용 사례
- GUI 이벤트 처리: 버튼 클릭, 마우스 이동 등 사용자 이벤트 처리.
- 비동기 작업: 데이터 로드 완료 후 실행할 작업 정의.
- 네트워크 요청: 요청 응답에 따라 작업 실행.