일반적으로 Observable들은 cold상태인것들이다.

RxJava를 하다보면 많이 듣는 게 cold와 hot Observable이다.

도대체 이것들이 뭔가..

Cold Observable

  • 일반적인 옵저버형태를 말한다.
  • 누가 구독해주지 않으면 데이터를 배출을 하지 않는다.
  • 일반적인 웹 요청 , 데이터베이스 쿼리등이 사용되며 내가 요청하면 결과를 받는 과정을 거친다.
  • 처음부터 발행하는 걸 기본으로 한다.

Hot Observable

  • 구독자의 존재 여부와 상관없이 데이터를 배출하는 Observable 이다.
  • 그래서 여러 구독자에 선택적으로 고려가능하다.
  • 구독시점으로부터 발행하는 값을 받는 걸 기본으로 한다.
  • 마우스 이벤트 , 키보드 이벤트 , 시스템 이벤트등이 주로 사용된다.
  • 멀티캐스팅도 포함된다.

데이터 발행자와 수신자도 이참에 정리해보자.

데이터 발행자데이터 수신자
ObservableSubscriber
SingleObserver
MaybeConsumer
Subject
Completable
  • Subscriber (구독자) : Observable 을 연결할 시 subscribe 함수를 사용하는데 이 과정에서 구독이 된다고 하여 구독자라고 부른다.
  • Observer (옵저버) : 스타의 옵저버가 아니다. RxJava는 옵저버 패턴을 사용해서 늘 관찰하고 작업을 수행합니다. 발신자를 Observable 이 되고 데이터 수신자를 옵저버라고 한다.
  • Consumer : Rxjava2 부터 소비자 패턴을 이용해서 소비를 시킨다. 이 패턴에 대해서 더 자세히 알아볼려면 클릭

일반덕으로 Observable 은 Code 성격이며 특별히 스트림을 Hot으로 변환하지 않으면 Code 상태이다

+ Recent posts