Rx ๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ฒ๋ฆฌํ๋ API ๋ฅผ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ๋ชจ๋ ์น์์ ๋น๋๊ธฐ ํต์ ์ ํ์์ ์
๋๋ค. ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ํน์ง์ ์ด์ฉํด ์ฝ๋ฐฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ฝ๋ฐฑ์ง์ฅ์ ํด๊ฒฐํ๊ณ ์ ํ๋ก๋ฏธ์ค๊ฐ ๋์ค๊ณ ๋ ๋์๊ฐ์ ํ๋ก๋ฏธ์ค ๊ธฐ๋ฐ์ async/await
๋ ๋์์ต๋๋ค.
๋ง์ฝ ๋๊ธฐ๋ฐฉ์์ผ๋ก ํต์ ์ ํ๋ค๋ฉด ๊ธฐ๋ค๋ฆผ์ ์ฐ์
๋ ๋ค๋ฅธ ํด๊ฒฐ๋ฒ์ผ๋ก ๋ฑ์ฅํ๊ฒ์ด RxJS ์ ๋๋ค. RxJS ๋ ์์ฝํ์๋ฉด ์ด๋ฒคํธ ์คํธ๋ฆผ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋ง๋ค๊ณ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. RxJS ๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ ์ ์ง๊ณ ๋์ด๊ฐ๋๊ฒ ์ข์ต๋๋ค.
RxJS ์์ ์ด๋ฒคํธ ์คํธ๋ฆผ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ์ํด ์ฌ๋ฌ ์ฐ์ฐ์๋ค์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ ์ฐ์ฐ์๋ค์ด ๊ฝค ๋ง์ ํ๋์ฉ ์์๋ณด๋ คํฉ๋๋ค. ์ฃผ๋ก learnrxjs ๋ฅผ ์ฐธ๊ณ ํฉ๋๋ค.
RxJS ์ฌ์ฉ๋๋ Operator(์ฐ์ฐ์)๋ค์ ์์๋ณด๋ คํฉ๋๋ค. ์ฐ์ฐ์๋ค์ด ๋๋ฌด ๋ง์ ์ด๋ค๊ฒ๋ค์ด ์๋์ง ์กฐ๊ธ์ฉ ์ดํด๋ณด๊ณ ์ถ์ด ์ ๋ฆฌํฉ๋๋ค.
RxJS ๋ฅผ ๋ฐฐ์ฐ๋ฉฐ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๋ ๋ฐฐ์ฐ๊ณ ์ถ์ต๋๋ค.
์ฐ์ฐ์ ํ์
- Combination
- Conditional
- Creation
- Error Handling
- Multicasting
- Transformation
- Utility
ํํ ๋ฆฌ์ผ
Observable
์ต์ ๋ฒ๋ธ์ ๊ณ์ํด์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๋ฐ์ดํฐ ์คํธ๋ฆผ ์ญํ ์ํ๋ฉฐ ๋ณดํต ๋ณ์ ๋ค์ $
ํ์๋ฅผ ๋ถ์ฌ์ค๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์์ฑํด ์ต์ ๋ฒ๋ธ์ด ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฉ์ถ(emit) ํ ์ ์์ต๋๋ค.
Observer
์ต์ ๋ฒ๋ ์ต์ ๋ฒ๋ธ์ด ๋ฐฉ์ถ(emit) ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ณด๋ '๊ตฌ๋ ์' ์ญํ ์ ํฉ๋๋ค. ๋ณดํต ์ต์ ๋ฒ๋ธ์ ๊ตฌ๋ ํ๊ณ , ์ต์ ๋ฒ๋ธ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐฉ์ถํ๋ฉด ์ต์ ๋ฒ๋ ๊ตฌ๋ ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ณผ ์ ์์ต๋๋ค. ์ผ์ข ์ Notification ๊ณผ ๊ฐ์ต๋๋ค.