Java

콜백 메서드 만들어 보기

ryeonng 2024. 9. 26. 12:11

사전 기반 지식

  • 인터페이스 : Java 인터페이스의 개념을 이해하고, 메서드를 선언하고 구현하는 방법을 알고 있어야 한다.
  • 익명 클래스 : 클래스 정의 없이 인터페이스를 바로 구현하는 익명 클래스의 사용법을 알고 있어야 한다.

콜백 메서드

콜백 메서드는 특정한 작업이 완료되었을 때 또는 특정 이벤트가 발생했을 때 호출되는 메서드이다.

콜백 메서드는 주로 비동기 작업이나 이벤트 기반 시스템에서 사용된다. 콜백 메서드를 활용하면 동작을 정의하고 나중에 실행할 수 있기 때문에, 프로그램이 더 유연해지고 모듈화 될 수 있다.

 

시나리오 코드 1 - 버튼 클릭 이벤트 처리

우리는 컴퓨터나 스마트폰에서 버튼을 누를 때 마다 어떠한 이벤트가 발생한다. 이 이벤트는 버튼이 눌렸을 때 동작할 콜백 메서드를 통해 처리된다. 예를 들어, 사용자가 버튼을 클릭할 때 마다 버튼이 눌렸다는 메시지를 출력하는 프로그램을 작성할 수 있다.

package design_pattern.callback;

// 버튼 클릭 이벤트 인터페이스 (콜백 메서드를 정의)
interface IButtonListener {
    void clickEvent(String event); // 버튼 클릭 시 호출될 콜백 메서드
}

// 버튼 클래스
public class Button {

    String name; // 버튼 이름
    private IButtonListener buttonListener; // 버튼에 연결된 리스너 (콜백 메서드)

    public Button(String name) {
        this.name = name;
    }

    // 버튼이 클릭되었을 때 콜백 메서드를 호출
    public void click(String message) {
        if (buttonListener != null) {
            buttonListener.clickEvent(message); // 버튼 클릭 이벤트 발생
        }
    }

    // 콜백 메서드를 설정하는 메서드
    public void addListener(IButtonListener iButtonListener) {
        this.buttonListener = iButtonListener;
    }
}

 

시나리오 코드 2 - 테스트
package design_pattern.callback;

public class MainTest {
    public static void main(String[] args) {

        // 버튼 생성
        Button button = new Button("버튼");

        // 버튼에 콜백 메서드(리스너) 추가
        button.addListener(new IButtonListener() {
            @Override
            public void clickEvent(String event) {
                System.out.println(">> 콜백 메서드 실행 <<");
                System.out.println(event); // 콜백 메서드 구현
            }
        });

        // 버튼 클릭 시마다 콜백 메서드 호출
        button.click("메세지전달: click1");
        button.click("메세지전달: click2");
        button.click("메세지전달: click3");
        button.click("메세지전달: click4");
    }
}

 

활용 사례

콜백 메서드는 다양한 상황에서 유용하게 사용할 수 있다. 특히, 이벤트 기반 시스템이나 비동기 작업에서 많이 활용된다.

 

이벤트 처리 시스템 : GUI 애플리케이션에서 버튼 클릭, 마우스 움직임, 키보드 입력 등의 이벤트 처리는 콜백 메서드를 통해 이루어진다.

  • 예 : 웹 페이지에서 사용자 클릭 이벤트 발생 시 특정 동작을 실행하는 기능.

비동기 작업 처리 : 네트워크 요청이나 파일 입출력 등 시간이 걸리는 작업이 완료된 후 콜백 메서드를 통해 결과를 처리할 수 있다.

  • 예 : 서버에 데이터를 요청하고 응답이 왔을 때, 그 응답을 처리하는 콜백 메서드.

애니메이션 및 타이머 : 애니메이션이 완료되거나 타이머가 끝났을 때, 콜백 메서드를 통해 후속 작업을 수행할 수 있다.

  • 예 : 웹 애니메이션이 끝났을 때, 다음 애니메이션을 시작하는 동작.

'Java' 카테고리의 다른 글

전략 패턴  (0) 2024.09.27
싱글 톤 패턴  (0) 2024.09.26
어댑터 패턴  (2) 2024.09.26
팩토리 패턴  (2) 2024.09.26
빌더 패턴  (0) 2024.09.26