본문 바로가기
android

RxJava 란

by Gil 2020. 2. 4.
728x90

https://m.post.naver.com/viewer/postView.nhn?volumeNo=6721006&memberNo=34635212

 

빨리 써먹는 RxJava와 Android

[BY 부스트코스] SUMMARYRxJava 와 Android Reactive Programming 은 최근 2년간 유행어처럼 번져 나간 ...

m.post.naver.com

 

간단하게 RxJava란 무엇일까? 

=> '비동기 처리를 효과적으로 할 수 있게 도와주는 라이브러리'  라고 보면 된다. 

내가 RxJava를 사용하게 된 이유는, Retrofit api 통신에서 여러 api 작업이 끝나는 시점을 catch 해야 하는데, 성공 시점에 차례차례로 api 들을 호출해야 하는 안좋은 구조를 개선하기 위해서이다. 

 

<함수 설명> 

map() : 데이터를 다른 형태로 가공
filter(): 조건 필터링

 

<구분점> 

Observable과 Subject 차이: Observable 은 내부에서, Subject는 외부에서 데이터를 주입

 

 

<비동기 처리>

쓰레드 선언 종류

1. Schedulers.io() : File IO, Network IO 등의 로직 스레드 

2. Schedulers.computation() : 단순 계산 스레드 

3. AndroidSchedulers.mainThread() : UI 처리 스레드 

 

쓰레드 사용 시점에 관한 함수

각 함수명으로 의미를 파악하려면 너무 어렵다. 
외우려면 먼저 구독한 후, 계속 관찰 이라는 순서이니까 subscribeOn 은 선작업, observeOn 은 후작업 으로 외우기로 했다. 

1. subscribeOn(): 설정 관련 시점, 즉 Observable.create(), Observable.just() 시점에 어떤 스레드를 사용할건지 정한다. 

2. observeOn(): 설정 후의 시점, 즉 filter, map 등의 오퍼레이션에 대한 시점에 어떤 스레드를 사용할건지 정한다. 

 

 

<Rxjava2 의 Disposable>

새로운 Observable 이라고 보면 된다.

dispose: 처리/ 처분하다. 
ex) to dispose of stolen property. (훔친 물건을 처분하다.)

Disposable이 나온 이유: 해당 화면(액티비티, 프레그먼트) 이 종료될 때, Observable의 실행 여부는 필요 없어져서 모두 취소할 필요가 있다. Disposable을 관리할 수 있는 CompositeDisposable() 이 있고, 실행될 때 add() 했다가 clear() 로 취소할 수 있다. 

<함수 설명>

subscribeWith(): subscribe() 와 비슷하고, Disposable 을 반환한다. 

'android' 카테고리의 다른 글

Android 저장소 시스템  (5) 2020.03.05
RxJava 의 핵심 기술 - concat, merge, zip  (0) 2020.02.27
How to draw Rect Overlay View?  (0) 2020.01.05
ViewPager를 가진 Dialog 구현 주의사항  (0) 2020.01.02
Architecture 설계  (0) 2019.12.30