ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [RxJava] RxJava 기본 구조
    Rxjava 2019. 5. 17. 20:14

    본 글은 [길벗]의 Rxjava 리액티브 프로그래밍 책을 정리하며 남긴 포스팅입니다. 

    자세한 내용과 부연 설명은 책을 참고하시길 바랍니다. 

    https://www.gilbut.co.kr/book/view?bookcode=BN002399

     

    RxJava 리액티브프로그래밍

    데이터에 실시간으로 반응하는 새로운 패러다임을 배우자!

    www.gilbut.co.kr


    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

    댓글

Designed by Tistory.