RxJava - Flowable과 Observable 이해하기
목표
생산자인 Flowable과 Observable의 차이점을 이해해보도록 합니다.
Flowable vs Observable
1. Reactive Streams 인터페이스 구현 유무
- Flowable은 Reactive Streams 인터페이스를 구현합니다.
- Observable은 Reactive Streams 인터페이스를 구현하지 않습니다.
2. 데이터 처리
- Flowable은 Subscriber라는 구독자로 데이터를 처리합니다.
- Observable은 Observer라는 구독자로 데이터를 처리합니다.
3. 구독 해지
- Flowable은 Subscription으로 구독을 해지합니다.
- Observable은 Disposable로 구독을 해지합니다.
4. 배압(Back Pressure) 기능
- Flowable은 배압 기능이 있기 때문에 Subscription으로 전달 받는 데이터의 개수를 제어할 수 있습니다.
- Observable은 배압 기능이 없기 때문에 데이터의 개수를 제어할 수 없습니다.
* 배압이라는 것은 데이터를 통지하는 속도가 Subscriber에서 통지된 데이터를 전달받아 처리하는 속도보다 빠를 때 균형을 맞추기 위해 데이터의 통지량을 제어하는 기능을 의미합니다.
- 소스 코드