Rx๋ฅผ ์ค์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํด๋ณด์. Rx๋ฅผ ์ฌ์ฉํ ๋ ์์๋ฅผ ์๊ฐํด๋ณด๋ฉด ์๋์ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ง ๊ณผ์ ์ ๊ฑฐ์น ๊ฒ์ด๋ค.
1. ๋จผ์ Observable์ ๋ง๋ ๋ค.
2. ์ํ๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
3. ๊ตฌ๋ ํด์ ์ฌ์ฉํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์์์ ๋ฐ๋์ ๋ง๋๋ ๋ฌธ์ ๋ ์ด๋ค Observable ๊ณผ Operator ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋์ด๋ค. ์ด๋ ์์์ผํ ์ง์์ด ๋ฐ๋ก Hot Observable & Cold Observable ๊ฐ๋ ์ด๋ค. ๋ ์ต์ ๋ฒ๋ธ์ ํน์ฑ์ ์์๋ณด๊ณ ์ค์ ์์ ์ด๋ป๊ฒ ์ฐ์ด๋์ง ์ดํด๋ณด์
Unicast vs Muticast
๋จผ์ Observable์๋ ๊ฐ๋ณ์ ์ผ๋ก ์คํธ๋ฆผ์ ๋์ง๋ ๋ ์๊ณผ ๋์ง๋ ์คํธ๋ฆผ์ ๊ณต์ ํ๋ ๋ ์์ด ์๋ค. ์ ์๋ฅผ Unicast๋ก, ํ์์ธ multicast๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ Unicast ๋ฅผ ํ๋ ๋ํ์ ์ธ ์๋ก๋ ๊ธฐ๋ณธ Observable, Multicast ์ ๋ํ์ ์ธ ์๋ Subject๊ฐ ์๋ค.
๊ตฌ๋ ์ ์ ๋ฌด
Cold Observable์ ๋๊ตฐ๊ฐ ๊ตฌ๋ ์ ํ๊ธฐ ์ ๊น์ง ๊ฐ์ ๋ฐฉ์ถํ์ง ์๋๋ค. ๊ฐ์ ๋ฐฉ์ถํ ๋๋ ์ ๋์บ์คํธ ๋ฐฉ์์ผ๋ก ๋๊ฐ๊ฒ ๋๋ค. ๋ฐ๋ฉด Hot Observable์ ๊ฐ ๋ฐฉ์ถ์ ๊ตฌ๋ ์ ์์ด๋ ํ๋ฉฐ ๋๊ตฐ๊ฐ ๊ตฌ๋ ํ๊ฒ ๋๋ค๋ฉด ๋ฉํฐ์บ์คํธ ๋ฐฉ์์ผ๋ก ๊ฐ์ ๋ฐฉ์ถํ๊ฒ ๋๋ค. ๊ทธ๋์ ์ด๋ฌํ ํน์ฑ์ด ํจ์ํ๋ ๋ฌด์์ผ๊น?
Observable ์ด์ด๋ถ์ด๊ธฐ
์ค๋ช ํ๊ธฐ ์์ https://tech.lonpeach.com/2019/09/29/UniRx-Hot-Cold/ ์ด๊ณณ์ด ์ ๋ฆฌ๊ฐ ์ ๋ง ์๋์ด์๋ค. ๋ค์ ์ด์ด์ง ๊ธ์ ์ด๋ธ๋ก๊ทธ ๋ด์ฉ์ ๋ค์ํ ๋ฒ ํ์ด์ด ๊ฒ์ด๋ค.
๋ฐฉ์ถํ๋ ๊ฐ์ ๊ตฌ๋ ์๋ค์ด ๊ณต์ ํ๋ ํน์ฑํ์ Hot Observable์ ์ฌ๋ฌ Observable๋ค๋ก ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ํด์ค ์ ์๋ค.
๋ฐ๋ฉด Cold Observable์ ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ํ๊ฒ๋๋ฉด ์๋ก์ด ๋ณ๋์ ์คํธ๋ฆผ์ด ์์ฑ๋๋ค.๋ฐ๋ผ์ ๋ณ๋์ ์คํธ๋ฆผ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ (ํนํ I/O ์์ !) ์๋ Cold ์ต์ ๋ฒ๋ธ๋ก ๋๋งบ์์ง์ด์ ์ด๋ฅผ ๊ตฌ๋ ํ๊ฒ ํด์ผํ๋ค.
๋ง์ฝ ๊ฐ์ ๋ฐฉ์ถํ๋ ์๊ธฐ์ ํ์ด๋ฐ์ด๋ ์ ํ๊ด๊ณ๊ฐ ์ค์ํ ๊ฒฝ์ฐ์ ์ฝ๋ ์ต์ ๋ฒ๋ธ ๋ค์ ๋ฐ๋์ ๊ตฌ๋ or hot ์ด ์์ผ์ง, ์ฝ๋๊ฐ ์ค๋ฉด ๋๋ค๋ฅธ ์๋ก์ด ์คํธ๋ฆผ์ด ์๊ธฐ๋ฉด์ ํ์ด๋ฐ๊ณผ ์ ํ๊ด๊ณ ๋ณด์ฅ์ด ์๋๋ค.
์ ๋ฆฌ
- Cold: ์คํธ๋ฆผ์ ์ ํ๋ฅผ ์ฐ๊ฒฐํ๋ ํ์ดํ. ๋จ๋ ์ผ๋ก๋ ์๋ฏธ๊ฐ ์๋ค. ๋๋ถ๋ถ์ ์คํผ๋ ์ดํฐ๋ Cold์ด๋ค.
- Hot: ์คํธ๋ฆผ์์ ๊ฐ์ ๊ณ์ ๋ฐํํ๋ ์๋๊ผญ์ง. ํญ์ ํ๋ฆฐ๋ค. ๋ค์ ํ์ดํ๋ฅผ ๋ง์ด ์ฐ๊ฒฐ ํ ์ ์๋ค.
Rx๋ฅผ ์ฌ์ฉํ ๋ ์คํธ๋ฆผ์ด ์ด๋์์ ๋ถ๊ธฐ๋ฅผ ํด์ผํ๋๊ฐ๋ฅผ ํญ์ ์์ํ๊ณ ์ค๊ณํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ํ๋ค. ํนํ ๋ธ๋ก๊ทธ ๊ฐ์ฅ ๋ง์ง๋ง์
"ํด๋์ค ์ธ์ Observable์ ๊ณต๊ฐ ํ ๋๋ Cold์ธ ์ฑ๋ก ๊ณต๊ฐํ์ง ๋ง๊ณ , ๋ฐ๋์ ๋ง๋จ์์ Hot์ผ๋ก ๋ณํํ ํ ๊ณต๊ฐํ๋ค"
๋ Rx๋ฅผ ํ์ฉํ ๋ ๊ผญ ๊ธฐ์ตํด๋์ด์ผํ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค.
https://youtu.be/dWgpLoD1cCE?si=YSYPVn5M4MIWNANi
https://tech.lonpeach.com/2019/09/29/UniRx-Hot-Cold/