-
[RxJava] RxJava 기본 구조Rxjava 2019. 5. 17. 20:14
본 글은 [길벗]의 Rxjava 리액티브 프로그래밍 책을 정리하며 남긴 포스팅입니다.
자세한 내용과 부연 설명은 책을 참고하시길 바랍니다.
https://www.gilbut.co.kr/book/view?bookcode=BN002399
RxJava 기본 구성- Publisher : 데이터를 만들어 통지하는 생산자
- Subscriber : 데이터를 받아 처리하는 소비자.
RxJava 기본적인 메커니즘
프로토콜 설명 onSubscribe 구독 시작 onNext 데이터 통지 onError 에러 통지 onComplete 완료 통지 Reactive Stream
RxJava 버전이 1.x 에서 2.x로 올라간 배경에는 Reactive Stream이 있다. Reactive Steam은 라이브러리나 다른 프레임워크에 상관없이 데이터 스트림을 비동기적으로 다룰 수 있는 공통 메커니즘인데, 이 메커니즘을 편리하게 사용할 수 있는 인터페이스를 제공하는 것이 Reactive Stream이다.
인터페이스 설명 Publisher 데이터를 생성하고 통지하는 인터페이스 Subscriber 통지된 데이터를 전달받아 처리하는 인터페이스 Subscription 데이터 개수를 요청하고 구독을 해지하는 인터페이스 Processor Publisher와 Subscriber의 기능이 모두 있는 인터페이스 Reactive Stream 규칙
- 구독 시작 통지(onSubscribe)는 해당 구독에서 한번 발생한다.
- 통지는 순차적으로 이루어진다.
- null을 통지하지 않는다.
- publisher의 처리는 완료 또는 에러를 통지해 종료한다.
RxJava의 기본구조
구분 생산자 소비자 Reactive Stream 지원 (배압 기능 o) Flowable Subscriber Reactive Stream 미지원 (배압 기능x) Observable Observer TIP )
배압 기능이 없는 Observable은 Subscription을 사용하지 않고 Disposable이라는 구독 해지 메서드를 사용한다.
이 Disposable은 구독을 시작하는 시점에 onSubscribe 메서드의 인자로 Observable에 전달된다.
구독 해지를 위한 Disposable의 두 가지 메소드
메서드 설명 dispose 구독 해지 isDisposed 구독 해지면 true, 아니면 false LIST'Rxjava' 카테고리의 다른 글
RxJava 프로그래밍 (0) 2019.04.21