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의 다양한 기능을 활용하면 더욱 풍부한 스트림 처리를 구현할 수 있습니다.
참고 문서: