Reactive X (Reactive eXtension)
함수형 프로그래밍을 통한 비동기 데이터 흐름에 중점을 둔 패러다임인 반응형 프로그래밍을 쉽게 적용할 수 있도록 도와주는 라이브러리
반응형 프로그래밍: 비동기적인 데이터의 흐름을 관찰하고 처리하는 기법이다.
언어 별로 라이브러리를 지원해서 RxJava, RxKotlin, RxSwift 등의 이름이 존재한다.
이중 RxJava의 가장 핵심적인 요소인 Observable은 데이터 흐름에 맞게 알림을 보내 Observer가 데이터를 사용할 수 있도록 한다. 즉, Observable을 이용해 데이터를 회수하고 변환하는 메커니즘을 정의하고, Observer는 이를 구독해 데이터가 준비되면 이에 반응한다.
알림
- onNext : 데이터의 발행을 알림
- onComplete : 모든 데이터의 발행이 완료되었음을 알리고, 이후 모든 구독은 끝
- onError : 데이터의 흐름 중에 에러가 발생했음을 알리고, Observable의 동작 끝
Observable의 종류
- Observable : 가장 기본적인 형태, 0개~N개의 데이터 발행, BackPressure 없음
- Single : 단 1개의 데이터, 혹은 오류 발행
- Completable : 성공 혹은 실패했다는 결과만 발행
- Maybe : 0개 또는 1개 완료, 오류
- Flowable : 0개~N개의 데이터 발행, BackPressure 존재