[RxSwift] RxSwift ์ฅ๋จ์
์ง๋ ํฌ์คํ ์์ RxSwift์ ์ ๋ฌธํด๋ดค๋๋ฐ์~!!
๊ทธ๋ผ ์ด RxSwift๋ ์์จ์ผํ ๊น์~? ์ฅ๋จ์ ์ ํ๋ฒ ํํค์ณ๋ณผ๊ฒ์!!
RxSwift์ ์ฅ์
1. ๋ฐ์ํ ํจ๋ฌ๋ค์์ด ์ ๊ณตํ๋ ๋ช ํํจ, ๋น๋๊ธฐ๋ฅผ ๋๊ธฐํ ์ฝ๋์ฒ๋ผ ์์ฑ์ด ๊ฐ๋ฅ
2. ์ผ๊ด์ฑ์ด ์๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ํ๋์ ๋น๋๊ธฐ ์ฝ๋๋ก ๊ฐ๋ฐ์ด ๊ฐ๋ฅ
- ์ด๋์๋ DispatchQueue, ์ด๋์๋ OperationQueue.....
3. Rx๋ก ์ผ๊ด๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ํ์ฅ์ด ๋ถ๊ฐ๋ฅํ ์ํคํ ์ฒ ํจ๋์ ํด๊ฒฐํ ์ ์์
- ์๋ก ๋ค๋ฅด๊ฒ ๊ตฌํํ ๋ก์ง์ ์กฐํฉํ๊ธฐ ์ฝ๊ณ , ํ์ฅ์ด ์ด๋ ค์ด ๋ถ๋ถ์ ํด๊ฒฐ ๊ฐ๋ฅ
4. Thread ์ฒ๋ฆฌ๊ฐ ์ฌ์์ง
- Callback ์ง์ฅ์์์ ํ์ถ
- UI ์ด๋ฒคํธ, ๋คํธ์ํฌ ์ฒ๋ฆฌ ๋ฑ๋ฑ ๋ฐ์ดํฐ ๊ฐฑ์ ํ์ ๋์ ์ฒ๋ฆฌ๊ฐ ์ฌ์
5. ์ฝ๋๊ฐ ๊น๋ํด์ง
6. ๋ค์ํ๊ณ ํธ๋ฆฌํ Operator๋ค์ด ์ ๊ณต๋จ
7. ํธ๋ ๋ํ ์ฝ๋๋ฅผ ์ง ๋ค๋ ๊ฐ๋ฐ์๋ก์จ์ ๊ธ์ง(?)
RxSwift์ ๋จ์
1. ๋ฌ๋์ปค๋ธ. Swift๋ณด๋ค ์๋์ ์ผ๋ก ํ์ตํ๊ธฐ ์ด๋ ค์
2. ๋๋ฒ๊น ์ด ์ด๋ ค์, ๊ทธ๋๋ debug Operator๋ฅผ ํตํด์ ์ผ์ถ ๊ฐ๋ฅ!
3. ํด๋ก์ ์ ์บก์ณ๋ฆฌ์คํธ(Closure Capture List)๋ฅผ ์ ๊ฒฝ์จ์ผํจ
- ํด๋ก์ ์ฌ์ฉ์ด ๋ง์
- ์บก์ณ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ผ์ผํค๋ ๋ถ๋ถ, ์ํ์ฐธ์กฐ๋ฅผ ํผํ ์ ์๊ฒ ์ ๊ฒฝ์จ์ผํจ
- ์บก์ณ๋ฆฌ์คํธ๋ฅผ ํด์ฃผ์ง ์์ผ๋ฉด race condition ๊ฐ์ ๊ฒ์ด ๋ฐ์ํ ์ ์์