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 |