Repolode
ReactiveX

ReactiveX/RxJava

관찰 가능한 시퀀스로 비동기 및 이벤트 기반 프로그램을 구성하는 Reactive Extensions의 Java VM 구현체입니다.

스타
48,159
포크
7,584
열린 이슈
12
마지막 커밋
어제

어떤 프로젝트인가요?

RxJava는 옵저버 패턴을 데이터와 이벤트의 시퀀스로 확장하고, 선언형 방식으로 시퀀스를 결합·변환·필터링하는 연산자를 제공합니다. 개발자는 저수준 스레드, 동기화 또는 동시성 자료 구조를 직접 관리하지 않고 처리 파이프라인을 작성할 수 있습니다. subscribeOn, observeOn 같은 Scheduler 추상화를 통해 작업을 스레드 간에 옮깁니다.

이 라이브러리는 결과 개수가 서로 다른 상황에 맞춰 여러 반응형 타입을 제공합니다. 백프레셔를 지원하는 스트림에는 Flowable, 백프레셔가 없는 무한 스트림에는 Observable을 사용하고, 결과가 0개 또는 1개인 경우에는 Single, Maybe, Completable을 사용합니다. 버전 4에서는 가상 스레드 기반의 블로킹 흐름을 위한 Streamable도 제공합니다. 4.x 버전은 java.util.concurrent.Flow를 기반으로 하며, 타사 런타임 의존성이 필요하지 않고 Schedulers.virtual() 같은 스케줄러를 통해 Virtual Threads를 지원합니다.

이 프로젝트는 Apache-2.0 라이선스로 제공되며 io.reactivex.rxjava4 그룹으로 Maven Central에 배포됩니다. 위키와 Javadoc에서 연산자를 확인할 수 있으며, 기존 코드에서 사용할 수 있도록 3.x 버전도 계속 제공됩니다.

핵심 기능

  • 01map, filter, flatMap 같은 선언형 연산자로 비동기 데이터 및 이벤트 스트림을 구성합니다.
  • 02백프레셔를 지원하는 Flowable과 지원하지 않는 Observable을 제공하며, 단일 결과 상황에는 Single, Maybe, Completable을 제공합니다.
  • 03computation, cached, virtual, single을 비롯한 Schedulers를 사용해 작업을 스레드 간에 전환합니다.
  • 04java.util.concurrent.Flow를 기반으로 하며 필수 타사 런타임 의존성이 없습니다.
  • 05Schedulers.virtual()와 virtualCreate()를 통해 Virtual Threads를 지원합니다.

활용 사례

  • 네트워크 또는 데이터베이스 호출을 백그라운드에서 실행하고 결과를 UI 스레드로 전달합니다.
  • 각 단계에서 이전 결과를 사용하는 종속적인 비동기 서비스 호출을 연결합니다.
  • 백프레셔를 통해 메모리 사용량을 제어하면서 이벤트 스트림을 처리합니다.
  • flatMap 또는 ParallelFlowable로 병렬 작업을 조율하고 결과를 병합합니다.

빠른 시작

  1. 1

    빌드에 RxJava 4 종속성을 추가합니다(README의 Gradle 예제 참조).

  2. 2

    Flowable을 사용해 Hello World 프로그램을 작성하고 실행합니다.

사용 전 알아둘 점

  • Java 26용으로 만들어졌으며, README에는 Android 호환성이 API 수준과 desugaring에 따라 달라진다고 설명되어 있습니다.
  • 버전 4에서는 새로운 패키지 이름(io.reactivex.rxjava4)을 사용하므로 3.x에서 마이그레이션하려면 코드를 변경해야 합니다.
  • 앞으로 몇 달 동안 RxJava 3.x 지원이 축소될 예정입니다.

토픽

자주 묻는 질문

RxJava은(는) 무엇인가요?
관찰 가능한 시퀀스로 비동기 및 이벤트 기반 프로그램을 구성하는 Reactive Extensions의 Java VM 구현체입니다. RxJava는 옵저버 패턴을 데이터와 이벤트의 시퀀스로 확장하고, 선언형 방식으로 시퀀스를 결합·변환·필터링하는 연산자를 제공합니다. 개발자는 저수준 스레드, 동기화 또는 동시성 자료 구조를 직접 관리하지 않고 처리 파이프라인을 작성할 수 있습니다. subscribeOn, observeOn 같은 Scheduler 추상화를 통해 작업을 스레드 간에 옮깁니다.
RxJava은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
RxJava은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
RxJava은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. RxJava의 마지막 커밋은 2026년 10월 23일입니다.
RxJava은(는) 어디에 사용할 수 있나요?
네트워크 또는 데이터베이스 호출을 백그라운드에서 실행하고 결과를 UI 스레드로 전달합니다. 각 단계에서 이전 결과를 사용하는 종속적인 비동기 서비스 호출을 연결합니다. 백프레셔를 통해 메모리 사용량을 제어하면서 이벤트 스트림을 처리합니다. flatMap 또는 ParallelFlowable로 병렬 작업을 조율하고 결과를 병합합니다.
RxJava는 어떻게 설치하나요?
빌드에 RxJava 4 종속성을 추가합니다(README의 Gradle 예제 참조). Flowable을 사용해 Hello World 프로그램을 작성하고 실행합니다.
RxJava은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/ReactiveX/RxJava

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트