Java

[JAVA] 디자인패턴 : 콜백(Callback) 패턴 알아보기

연화 2025. 1. 13. 17:17

안녕하세요! 오늘은 디자인 패턴 중에서도 콜백 메서드라는 개념에 대해 알아보겠습니다.
콜백 메서드는 유연하고 확장 가능한 코드 설계를 가능하게 하며, 특히 비동기 처리이벤트 기반 시스템에서 널리 사용됩니다. 이번 글에서는 콜백 메서드의 개념, 장점, 그리고 실제 구현 사례를 통해 이를 쉽게 이해할 수 있도록 설명하겠습니다.

 

콜백 메서드란?

정의

콜백 메서드(Callback Method)는 특정 이벤트가 발생하거나 작업이 완료되었을 때 미리 정의된 로직을 실행하기 위해 호출되는 메서드입니다. 주로 비동기 작업이나 이벤트 기반 시스템에서 사용됩니다. 프로그램이 동작 중에 호출할 수 있도록 메서드의 실행 흐름을 역전(Inversion of Control) 시킬 수 있습니다.
즉, 콜백 메서드를 활용하면 동작을 정의하고 나중에 실행할 수 있기 때문에 프로그램이 더 유연해지고 모듈화될 수 있습니다.

콜백 메서드의 특징

  • 비동기적 실행: 특정 작업이 끝난 후에 실행되므로, 작업 완료 시점에 따라 동작이 달라질 수 있습니다.
  • 확장 가능성: 개발자가 원하는 동작을 인터페이스로 정의하고, 이를 구현하여 유연하게 처리할 수 있습니다.
  • 모듈화: 코드의 재사용성과 가독성을 높이고, 유지보수를 쉽게 만듭니다.

 


콜백 메서드의 동작 원리

콜백 메서드는 일반적으로 인터페이스와 구현체를 활용하여 설계됩니다. Java에서는 익명 클래스람다식을 활용하여 이벤트 리스너를 구현할 수 있습니다. 예제 코드를 통해 알아보도록 하겠습니다!

💡 학습 목표
1.  콜백 메서드의 개념과 동작 방식을 이해할 수 있다.
2.  콜백 메서드를 활용한 코드를 작성할 수 있다.
3.  콜백 메서드가 필요한 상황과 그 장점을 설명할 수 있다.

 

1. 인터페이스 정의

interface IButtonListener {
    void clickEvent(String event);
}

 

2. 버튼 클래스 설계

버튼 클래스는 인터페이스를 통해 이벤트 리스너를 등록하고, 클릭 이벤트가 발생했을 때 콜백 메서드를 호출합니다.

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. 콜백 메서드 구현

클라이언트 코드는 addEventListener 메서드를 통해 원하는 동작을 정의합니다. 익명 클래스를 활용해 구현했습니다.

public class MainTest {
    public static void main(String[] args) {
        Button button = new Button("클릭 1 버튼");

        button.addEventListener(new IButtonListener() {
            @Override
            public void clickEvent(String event) {
                System.out.println("콜백 넘겨받은 메시지: " + event);
            }
        });

        System.out.println("버튼 클릭 이벤트 실행");
        button.click("내가 클릭했어!!!");
    }
}

 

출력 결과

 


콜백 메서드의 장점

  • 유연한 코드 작성: 이벤트 발생 시 실행되는 동작을 개발자가 자유롭게 정의할 수 있습니다.
  • 모듈화: 콜백 메서드를 사용하면 코드가 분리되어 유지보수가 쉬워집니다.
  • 확장성: 인터페이스를 사용하여 다양한 동작을 구현할 수 있어 확장성이 뛰어납니다.
  • 재사용성: 동일한 이벤트에 대해 다양한 동작을 쉽게 추가할 수 있습니다.

콜백 메서드의 활용 사례

  • UI 이벤트 처리: 버튼 클릭, 입력 필드 변경 등.
  • 비동기 작업: API 호출 후 작업 완료 시 처리.
  • 알림 시스템: 상태 변경 시 사용자 알림.
  • 디자인 패턴 구현: 옵저버 패턴, 전략 패턴 등에서 활용.

 

 

콜백 메서드는 소프트웨어 설계에서 중요한 역할을 하며, 특히 이벤트 기반 시스템이나 비동기 처리에 강력한 도구로 사용됩니다. 이를 통해 유연한 프로그램 설계와 코드 재사용성을 높일 수 있습니다. 이번 포스팅을 통해 콜백 메서드의 개념과 구현 방식을 이해하고, 프로젝트에 효과적으로 적용할 수 있길 바랍니다.

다음에도 더 유익한 주제로 찾아뵙겠습니다. 감사합니다! 😊

 

❓ 디자인 패턴이 뭘까요?

 

[JAVA] 디자인 패턴이란?

안녕하세요! 오늘은 소프트웨어 설계에서 자주 언급되는 디자인 패턴(Design Patterns)에 대해 알아보려고 합니다. 디자인 패턴은 개발자들에게 더 나은 설계를 위한 가이드를 제공하며, 효율적인

dev-yeonwha.tistory.com