iOS/RxSwift

Hot Observable VS Cold Observable

돼우 2024. 4. 20. 17:02
반응형

Observable에는 이벤트 방출시점으로 두가지로 나뉜다.

  • Hot Observable
  • Cold Observable

Hot Observable

Hot Observable는 구독 여부와 상관없이 Observable 생성 시점 부터 이벤트를 방출시킨다.

때문에 구독 시점에 따라 전달받는 요소가 다르다.

 

RxSwift에서는 이 구독 시점을 조절하는 connect() 메서드를 제공한다.

 

TV 프로그램으로 예를 들어보면

정해진 시간이 되면 프로그램은 나를 기다리지 않고 준비한 프로그램을 방영한다.

방영이 된 30분 후 부터 시청을 한다면 앞선 30분간의 방송내용을 알 수 없다.

 

여기서 TV 프로그램은 Hot Observable이 되고

나는 Observer가 되어 30분 후에 시청 하는 행위를 Subscribe이라고 생각 할 수 있다.

 

대표적인 Hot Observable에는 Subject가 있다.

Cold Observable

Cold Observable은 구독을 시작한 이후부터 이벤트 방출을 할 수 있다.

 

때문에 Sequence의 처음부터 관찰 할 수 있다.

 

OTT서비스로 예를 들면

TV 프로그램과 달리 구독자가 OTT 서비스의 영상을 재생을 해야만 영상이 재생 되어진다.

또한, 날짜, 시간과 상관없이 똑같은 영상을 시청 할 수 있다.

 

여기서 OTT서비스의 영상이 Cold Observable이 되고

구독자는 Observer, 영상을 재생하는 행위가 Subscribe이 된다.

 

대표적인 Cold Observable에는 일반적으로 사용하는 of, just, from 등이 있다.

 

참고한 블로그

https://reactivex.io/documentation/observable.html

https://medium.com/@hyosing92/rxswift-hot-vs-cold-6deb989cde04

https://asong-study-record.tistory.com/136

https://velog.io/@jee/Hot-Observable-VS-Cold-Observable

 

 

틀린 내용이 있다면 댓글로 남겨주세요!

반응형

'iOS > RxSwift' 카테고리의 다른 글

Subject의 종류  (1) 2024.06.04
Subject에 대해  (0) 2024.04.20
Observable, Observer, Subscribe에 대해  (2) 2024.04.08
RxSwift의 기본 개념  (0) 2024.04.07