[java] RxJava의 스트림 처리

RxJava는 Java에서 Reactive Programming을 위한 라이브러리입니다. 이를 사용하여 비동기 데이터 스트림을 처리할 수 있습니다. 여기에서는 RxJava의 기본적인 스트림 처리에 대해 알아보겠습니다.

Observable 생성

먼저, Observable을 생성하는 방법부터 알아보겠습니다. Observable은 데이터의 스트림을 표현하며, 특정 이벤트가 발생하면 이를 구독자에게 통지합니다.

Observable<Integer> observable = Observable.just(1, 2, 3, 4, 5);

위의 예제에서는 just 메서드를 사용하여 정수 1부터 5까지의 값을 갖는 Observable을 생성했습니다.

데이터 처리

Observable은 생성된 후, 데이터를 처리할 수 있는 다양한 연산자를 제공합니다. 예를 들어, 각 데이터를 제곱하여 새로운 Observable을 생성하는 map 연산자를 사용해보겠습니다.

Observable<Integer> squaredObservable = observable.map(x -> x * x);

위의 예제에서는 map 연산자를 사용하여 각 데이터를 제곱한 값을 갖는 새로운 Observable을 생성했습니다.

구독

Observable을 생성하고 데이터를 처리한 후, 이를 구독하여 결과를 받을 수 있습니다. 구독하는 방법은 다음과 같습니다.

squaredObservable.subscribe(
    nextValue -> System.out.println("Next: " + nextValue),
    error -> System.err.println("Error: " + error),
    () -> System.out.println("Complete")
);

위의 예제에서는 각각 데이터가 발생할 때마다 nextValue를 출력하거나, 오류가 발생할 경우 error를 출력하고, 모든 데이터 처리가 완료되었을 때 Complete를 출력합니다.

결론

RxJava를 사용하면 데이터의 비동기 스트림을 처리하는 작업을 간편하게 할 수 있습니다. Observable을 생성하고 연산자를 사용하여 데이터를 가공한 후, 이를 구독하여 결과를 받을 수 있습니다. RxJava의 다양한 기능을 활용하면 더욱 풍부한 스트림 처리를 구현할 수 있습니다.


참고 문서: