RxJava ) 의 특징 , Streams, 인터페이스
1. 옵저버 패턴 : 감시 대상 객체의 상태가 변하면 이를관찰하는 객체에 알려주는 구조.
2. 쉬운 비동기 처리
* Reactive Streams : 데이터를 만들어 통지하는 Publisher와 통지된 데이터를 받아 처리하는 Subscriber로 구성. Subscriber가 Publisher를 구독 하면 Publisher가 통지한 데이터를 Subcriber가 받을 수 있다.
-> Publisher 는 데이터를 만들어 Subcriber에 통지 (onNext) -> Subcriber는 받은 데이터를 이용해 처리 작업을 수행.
Publisher는 요청받은 만큼의 데이터를 통지한 뒤 Subcriber로부터 다음 요청이 올때까지 데이터 통지를 중단. 처리 작업 완료하면 다음에 받을 데이터 개수를 Publisher에 요청. 이 요청을 보내지않으면 Publisher는 요청 대기 상태가 돼 Subcriber에 데이터를 통지할 수 없다.
-> onComplete
Reactive Streams가 제공하는 프로토콜
- onSubcribe : 데이터 통지 준비를 알림
- onNext : 데이터 통지
- onError : 에러 통지
- onComplete : 완료 통지
제공하는 인터페이스
- Publisher : 데이터를 생성하고 통지
- Subscriber : 통지된 데이터를 전달받아 처리하는 인터페이스
- Subscription : 데이터 개수를 요청하고 구독을 해지
-Processor : Publisher와 Subcriber의 기능이 모두 있는 인터페이스