[java] RxJava의 Observer 인터페이스

RxJava은 반응형 프로그래밍을 위한 라이브러리로, Observer 패턴을 기반으로 구현되어 있습니다. Observer 패턴은 주체(Subject)가 상태의 변화를 관찰하는 관찰자(Observer) 객체들을 등록하고, 상태 변화가 발생하면 등록된 관찰자에게 자동으로 알림을 보내는 패턴입니다.

RxJava에서는 Observer 인터페이스를 통해 관찰자를 구현합니다. Observer 인터페이스에는 다음과 같은 메서드가 정의되어 있습니다:

public interface Observer<T> {
    void onSubscribe(Disposable d);
    void onNext(T t);
    void onError(Throwable e);
    void onComplete();
}

Observer 인터페이스를 구현하면서 필요한 메서드만 오버라이딩하여 사용할 수 있습니다. 예를 들어, 데이터를 받는 시점에만 onNext 메서드를 구현하고 나머지 메서드는 무시할 수 있습니다. 이는 간편한 사용이 가능하며, 필요에 따라 다양하게 Observer를 구현할 수 있게 해줍니다.

다음은 Observer 인터페이스를 사용하는 예시 코드입니다:

Observable<String> observable = Observable.just("Hello, World!");

Observer<String> observer = new Observer<String>() {
    @Override
    public void onSubscribe(Disposable d) {
        // 구독시 처리할 로직
    }

    @Override
    public void onNext(String s) {
        // 데이터 수신 시 처리할 로직
        System.out.println(s);
    }

    @Override
    public void onError(Throwable e) {
        // 에러 처리 로직
    }

    @Override
    public void onComplete() {
        // 완료 시 처리할 로직
    }
};

observable.subscribe(observer);

위 코드에서는 Observable.just("Hello, World!")를 통해 “Hello, World!”라는 데이터를 발행하는 Observable을 생성하고, Observer를 구현하여 observable에 구독합니다. 이후, Observable이 데이터를 발행하면 Observer의 onNext 메서드가 호출되어 데이터를 수신합니다.

RxJava의 Observer 인터페이스를 통해 관찰자를 구현하는 것은 비동기 프로그래밍에서 매우 유용합니다. 데이터의 변화를 감지하고 적절한 처리를 수행할 수 있으며, 반응형 프로그래밍의 핵심 개념 중 하나입니다.

참고 자료