[java] RxJava의 데이터 스트림 조작

RxJava는 자바에서 반응형 프로그래밍을 구현하기 위한 라이브러리로, 데이터 스트림을 조작하고 변환하는 강력한 기능을 제공합니다. 이번 포스트에서는 RxJava를 사용하여 데이터 스트림을 조작하는 몇 가지 기술에 대해 살펴보겠습니다.

1. 필터링

데이터 스트림에서 원하는 조건에 맞는 데이터만을 선택하고 싶을 때에는 filter 연산자를 사용할 수 있습니다. 예를 들어, 정수로 이루어진 스트림에서 짝수만을 선택하고 싶다면 다음과 같이 작성할 수 있습니다.

Observable<Integer> stream = Observable.fromArray(1, 2, 3, 4, 5);
stream
  .filter(number -> number % 2 == 0)
  .subscribe(System.out::println);

위 코드는 스트림에서 2와 4를 출력할 것입니다.

2. 변환

데이터 스트림에서 각 항목을 변환하고 싶을 때에는 map 연산자를 사용할 수 있습니다. 예를 들어, 스트림의 정수 값을 제곱하고 싶다면 다음과 같이 작성할 수 있습니다.

Observable<Integer> stream = Observable.fromArray(1, 2, 3, 4, 5);
stream
  .map(number -> number * number)
  .subscribe(System.out::println);

위 코드는 스트림의 정수 값을 제곱하여 출력할 것입니다.

3. 결합

데이터 스트림을 결합하여 새로운 스트림을 생성하고 싶을 때에는 flatMap 연산자를 사용할 수 있습니다. 예를 들어, 각 항목을 특정 연산을 통해 변환한 다음 결합하여 출력하고 싶다면 다음과 같이 작성할 수 있습니다.

Observable<String> stream = Observable.fromArray("Hello", "World");
stream
  .flatMap(word -> Observable.fromArray(word.split("")))
  .subscribe(System.out::println);

위 코드는 스트림의 각 단어를 문자열로 분리하여 출력할 것입니다.

결론

이번 포스트에서는 RxJava를 사용하여 데이터 스트림을 조작하는 몇 가지 기술에 대해 알아보았습니다. 필터링, 변환, 결합을 통해 다양한 작업을 수행할 수 있으며, 이러한 기능을 통해 코드의 가독성과 재사용성을 높일 수 있습니다. 자세한 내용은 RxJava 공식 문서를 참조하시기 바랍니다.