Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- git
- library
- Jetpack
- Java8
- Database
- livedata
- Android
- Room
- Kotlin
- ReactiveProgramming
- sourcetree
- Version
- Algorithm
- leetcode
- FRAGMENT
- rxjava
- programmers
- androidstudio
- ViewModel
- IntelliJ
- homebrew
- github
- Java
Archives
- Today
- Total
Learn & Run
RxJava - 또 다른 생산자 Single, Maybe와 Completable 본문
목표
지난 포스팅에서 Flowable과 Observable을 사용해왔습니다. 이번 포스팅에서는 또 다른 생산자인 Single, Maybe 그리고 Completable을 사용해보며 익숙해지도록 합니다. 또한 어떠한 차이점이 있는지 알아보도록 합니다.
이 3가지 클래스는 Flowable과 Observable처럼 대량의 데이터를 처리하는 것이 아니라 데이터를 최대 1건만 발행하는 생산자들인데 각각 어떠한 차이점들이 있는지 알아보도록 합니다.
1. Single
- 데이터를 1건만 통지하거나 에러를 통지합니다.
- 데이터 통지 자체가 완료를 의미하기 때문에 별도로 완료 통지를 하지 않습니다.
- 데이터를 1건만 통지하므로 데이터의 개수를 요청할 필요가 없습니다.
- onNext(), onComplete()가 없으며, 이 둘을 합친 onSuccess()만을 제공합니다.
- Single의 대표적인 소비자는 Observer 인터페이스를 구현한 SingleObserver입니다.
- Client의 요청에 대응하는 서버의 응답을 Single로 처리하는 것이 대표적인 예입니다.
2. Maybe
- 데이터를 1건만 통지하거나 1건도 통지하지 않고 완료 또는 에러를 통지합니다.
- 데이터 통지 자체가 완료를 의미하기 때문에 완료 통지는 하지 않습니다.
- 데이터를 1건도 통지하지 않고 처리가 종료되면 완료 통지를 합니다.
- Maybe의 대표적인 소비자는 Observer 인터페이스를 구현한 MaybeObserver입니다.
3. Completable
- 데이터 생산자이지만 데이터를 1건도 통지하지 않고 완료 또는 에러를 통지하는 생산자입니다.
- 데이터를 1건도 통지하지 않는데 왜 이런 클래스가 필요할까요? 데이터 통지의 역할 대신에 Completable 내에서 특정 작업을 수행한 후에, 해당 작업을 끝났음을 통지하는 목적으로 사용됩니다.
- Completable의 대표적인 소비자는 Observer 인터페이스를 구현한 CompletableObserver 입니다.
'Java' 카테고리의 다른 글
Java - 메서드 래퍼런스 이해하기 (0) | 2021.01.19 |
---|---|
Java - 함수형 인터페이스와 람다 표현식 (0) | 2021.01.13 |
RxJava - 배압 전략(BackpressureStrategy)의 종류 (0) | 2021.01.08 |
RxJava - Flowable과 Observable 이해하기 (0) | 2021.01.08 |
RxJava - 예제를 통해 Reactive Streams 이해하기 (0) | 2021.01.07 |