머리말
Observables의 특징 따른 구분 (Hot vs Cold)
RxSwift의 Observables의 특징을 구분하여 설명할 때 흔히 Hot과 Cold로 구분하여 이를 다룬다. 아메리카노도 아니고 무슨 Hot과 Cold가...
이를 한번 비교해 보자.
본문
구분의 핵심
시퀀스에 대한 방출 시점 (→ 자원의 사용 여부)
Observable이 Hot인지 Cold인지 이를 구분하는 핵심은 아래와 같다.
Observable이 아이템에 대한 시퀀스를 언제 방출하는가?
여기서 짐작할 수 있는 따뜻하냐 차갑냐의 차이는, 이벤트의 방출은 곧 자원의 사용 (이벤트의 방출 → 열을 발생시킨다)의 여부 에서 착안한 것 같다.
공식 문서에서도 Use resources ("produce heat") 라 설명되어 있다. 여기서의 자원은, 시퀀스를 의미한다.
Hot Observables | Cold Observables | |||
시퀀스인가? | O | O | ||
자원의 사용 (이벤트의 방출) | 어떠한 옵저버를 구독하든지 상관없이 자원을 소용한다 | 옵저버가 구독하기 전까지 자원을 사용하지 않는다. | ||
예시 | 변수/프로퍼티/상수, 탭/마우스의 좌표 UI를 조절하는 변수 등 |
비동기 작업, HTTP 연결, TCP 연결, 스트림 |
||
상태성 | 주로 상태적이다(stateful) | 주로 비상태적이다(stateless) | ||
옵저버의 관찰 범위 | 구독(subscribe) 이후의 시퀀스만 확인 가능 | 구독(subscribe) 이후에도 그 이전을 포함한 전체적인 시퀀스를 확인 가능 | ||
실제 예시 | Subject | Observable |
참고 자료
'iOS > RxSwift' 카테고리의 다른 글
MVVM) Input-Output 패턴 적용하기 (feat. RxSwift) (0) | 2023.11.08 |
---|
댓글