- Published on
ReactiveX) Observable
- Author
- Name
- yceffort
๋ณดํต ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ์๋, ํ๋์ฉ ์์ฑ๋ ์์์ ๋ฐ๋ผ ๋ก์ง์ด ์คํ๋๊ณ , ์๋ฃ๋๋ฉด ๋๋ค๋ฅธ ๋ก์ง์ด ์คํ๋๋ ๋ฑ์ ์์๊ฐ ์์์ ์์ ์๋ค.
๊ทธ๋ฌ๋ ์ด์ ๋ฌ๋ฆฌ ReactiveX๋ "Observer"์ ์ํด ์์์ ์์์ ๋ฐ๋ผ ๋ณ๋ ฌ์ ์ผ๋ก ์คํ๋๊ณ ๋์ค์ ๊ฒฐ๊ณผ๋ ๋์จ๋ค.
์ฆ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ์๋๋ผ, Observable์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ , ๋ณํ ํ๋ ๋ฑ์ ํ๋ก์ธ์ค๋ฅผ ์ ์ํ ํ, Observable์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๋ฉด ์ต์ ๋ฒ์ ๊ด์ฐฐ์๊ฐ ๊ทธ ์๊ฐ์ ๊ฐ์งํ๊ณ ์ค๋น๋ ์ฐ์ฐ์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ค. ๊ทธ๋์ Observable์ Subscribeํ๋ค๋ ํํ์ ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก Observable์ ๊ตฌํํ๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๋ค.
- ๋น๋๊ธฐ ํธ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํด๋ฐ๊ณ , ํ์ํ ๋์์ ์ฒ๋ฆฌํ๋ ๋ฉ์๋๋ฅผ ์ ์ํ๋ค.
- Observable๋ก ๋น๋๊ธฐ ํธ์ถ์ ์ ์ํ๋ค.
- Subscribe๋ฅผ ํตํด ์ต์ ๋ฒ๋ฅผ Observable์ ์ฐ๊ฒฐ ์ํจ๋ค.
- ๋ฉ์๋ ํธ์ถ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฆฌํด ๋ ๋๋ง๋ค, ์ต์ ๋ฒ์ ๋ฉ์๋๋ ๋ฆฌํด ๊ฐ ๋๋ ํญ๋ชฉ์ ์ฌ์ฉํด์ ์ฐ์ฐ์ ํ๋ค.
onNext
Observable์ ์๋ก์ด ํญ๋ชฉ์ push ํ ๋ ๋ง๋ค ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. ์ด ๋ฉ์๋๋ Observable ์ด ๋ฐฐ์ถํ๋ ํญ๋ชฉ์ parameter ๋ก ์ ๋ฌ ๋ฐ๋๋ค.
oNError
๊ธฐ๋ํ๋ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋์ง ์์๊ฑฐ๋, ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํธ์ถ๋๋ค. ์ด ๊ฒฝ์ฐ onNext
, onCompleted
๋ ํธ์ถ๋์ง ์๋๋ค.
onCompleted
๋ง์ง๋ง onNext
๊ฐ ํธ์ถ๋ ๋ค์ ํธ์ถ๋๋ค.
๋ ์ด์ ๊ตฌ๋
์ ํ์ง ์์ผ๋ ค๋ฉด unSubscirbe
๋ฅผ ํธ์ถํ๋ค.
Observable์ด ์ฐ์๋ ํญ๋ชฉ์ pushํ๋ ๋ฐฉ๋ฒ์๋ ๋๊ฐ์ง๊ฐ ์๋๋ฐ ๋ฐ๋ก hot๊ณผ cold๋ค. hot์ ์์ฑ๋์๋ง์ pushํ๊ณ , cold๋ ์ต์ ๋ฒ๊ฐ ๊ตฌ๋ ํ ๋๊น์ง ๋ฐฐ์ถํ์ง ์๋๋ค.
์ด๋ฌํ Observable์ ์ฐ์ฐ์์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ ์ ์๋๋ฐ, ์ด๋ฐ ์ฐ์ฐ์๋ค์ ๋ฆฌํด๋ observable์ ๋ณ๊ฒฝํ์ฌ ์ ๊ณตํ ์ ์๋ค.