[자바기초] Cold Observable vs Hot Observable

Cold Observable

Observable을 선언하고 just, fromIterable 함수를 호출해도 옵서버가 subscribe함수를 호출하지 않으면

데이터를 발행하지 않는다.

Cold Observable의 예로는 웹 요청, 데이터베이스 쿼리와 파일 읽기 등이며, 대부분의 Observable은

Cold Observable이다.

Hot Observable

(= Connectable Observable)

구독자의 존재 여부와 관계없이 데이터를 발행하는 Observable

구독자는 구독한 시점부터 Observerble에서 발행한 값을 받는다.

즉, 구독자로서는 Observable에서 발행하는 데이터를 처음부터 모두 수신할 것으로 보장할 수 없다.

Hot Observable의 예로는 마우스, 키보드, 시스템, 센서 데이터와 주식가격 등이 있다.

관련 메서드는 publish / multicast / connect / replay / replayAll / share / shareReplay 등이 있다.

#### Hot Observable은 배압(Back Pressure)를 고려해야 한다!

배압이란 데이터를 발행하는 속도와 구독자가 처리하는 속도의 차이가 클 때 발생하는 것이다.