Flowable 이란?
- Observable과 같은 RxJava2에서 쓰이는 관찰 가능한 객체이다.
- 사용하는 가장 큰 이유는 backpressure를 처리하기 위함이다.
- Observable : backpressure - aware X
- Flowable : backpressure - aware O
+ backpressure - Observer에게 방출되는(관찰하는) Data가 너무 많으면 처리 불가.
Memory Leak 발생
backpressure에서 2가지 알아야할 용어가 있다.
- Hot Source
- Push 관계로 생각
- Observable은 Observer를 신경쓰지 않는다. 계속해서 Data를 Push한다.
- 즉, 관찰은 Observer에게 달려있다.
- 이때, Data를 처리하기 위해 버퍼링이나 다른 방법을 사용해야함.
- Cold Source
- Hot Source의 반대
- Data가 느리게 Push되는 것으로 생각
- Observer가 원할 때 Data를 직접 Pull(?)한다
Flowable 객체 생성
Flowable.range(0,100)
.subscribeOn()
.observeOn()
....
Hot Source의 문제를 해결하기 위해
무제한 버퍼를 두어 해결 가능하다.
Flowable.range(0,100)
.onBackpressureBuffer()// Data를 받아오는 곳에 무제한 버퍼를 둔다
.subscribeOn()
.observeOn()
....
'Android' 카테고리의 다른 글
RxJava2, Retrofit, DataBinding, MVVM, LiveData 정리 (0) | 2020.01.14 |
---|---|
Disposable이란? (RxAndroid - 4) (0) | 2020.01.13 |
Rx를 사용해보자(RxAndroid-2) (0) | 2020.01.13 |
RxJava2 / RxAndroid2 / Reactive 란? (RxAndroid-1) (0) | 2020.01.13 |
Rxjava2 , RxAndroid 를 알아보자 (0) | 2020.01.07 |