๐ญ ๋ผ-์ดํ/๐ ํฐ-์์ด-์
์ค๋์ ๋ฐฐ์ #117
๊ฐ๋ฐํ๋ ํ์ด
2022. 1. 16. 03:09
2022.01.15 ์ค๋์ ๋ฐฐ์
์ค๋ ํ ์ผ.
- CALayer ์ ๋ฆฌํ๊ธฐ - ์ด์ ์ข ์ดํด๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
- ๋ฉด์ ์ค๋น - Rx ๊ณต๋ถ
์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ.
- ๋ทฐ๊ฐ ์์ฑ๋ ๋ ์ฌ์ฉํ CALayer์ ํ์ ์ ๋ฐ๊ฟ์ฃผ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. layerClass ํ๋กํผํฐ๋ฅผ ๋ทฐ์์ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ํ๋ ๋ ์ด์ด ํด๋์ค์ ๋ฉํํ์ ์ ๋ฐํํ๋ฉด ๋๋ค.
- UIView๋ CALayer์ delegate ๊ฐ์ฒด์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ํ ์ธํฐํ์ด์ค๋ CALayerDelegate์ ๋ ๊ฐ์ ๋ฉ์๋๊ฐ ์ ์๋์ด ์๋ค.
- ๋ ๋ฉ์๋๊ฐ ํด์ผํ๋ ์ผ์ CALayer์ ํ๋ฉด์ ๊ทธ๋ฆฐ ์ปจํ ์ธ ๋ฅผ ๋นํธ๋งต์ผ๋ก ๋ฐ๊ฟ์ ์ ๊ณตํ๋ ๊ฒ์ด๋ค.
- ์ ์ด๋ ๊ฒ ํ๋๋ฉด CALayer๋ ์ง์ ๊ทธ๋ฆฌ๋๊ฒ ์๋๋ผ ๋นํธ๋งต์ผ๋ก ์ปจํ ์ธ ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด๊ฑธ ์บ์ฑํด๋์๋ค๊ฐ ํ๋ฉด์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
- ๋นํธ๋งต์ด๋ผ์ GPU์์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ณ ํญ์ ๋ฉ์ธ ์ค๋ ๋์์ CPU๋ก ๋ทฐ๋ฅผ ๊ทธ๋ ค์ฃผ์ด์ผ ํ๋ ๋ถ๋ด์ ์บ์ฑ๊ณผ GPU๋ก ์ค์ฌ์ค ์ ์๋ค.
- ์ ๋๋ฉ์ด์ ๋ ์ฝ์ด ์ ๋๋ฉ์ด์ ์ด ๋นํธ๋งต๊ณผ ์ปจํ ์ธ ์ ๋ํ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ค์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์๋ ๋นํธ๋งต์ด๋ ์ต์ข ์ ์ผ๋ก ์ํ๋ ์ํ์ ๋ํ ์ ๋ณด๋ง ์ ๋ฌํ๋ฉด ์ ๋๋ฉ์ด์ ์ ๋ง๋ค์ด์ค๋ค.
- Traits๋ ์ธ ์ข ๋ฅ๊ฐ ์๋ค. single, maybe, completable.
- single์ success or error, completable์ completed or error, maybe๋ completed or success or error.
- ์ฉ๋๋ ๋คํธ์ํน์ฒ๋ผ ์ฑ๊ณต์์ ๋ฐ์ดํฐ๊ฐ ๋์์ค๊ณ ์๋๋ฉด ์คํจ์ธ ๊ฒฝ์ฐ์๋ single์ ์ฌ์ฉํ๋๊ฒ ์ข๊ณ , ๋ฐ์ดํฐ ์ ์ฅ์ด๋ ํ์ผ์ฐ๊ธฐ ์ฒ๋ผ ๋จ์ํ ์ฐ์ฐ์ด ์๋ฃ๋์๋์ง ์ค๋ฅ๊ฐ ๋ฌ๋์ง๋ฅผ ์ฒ๋ฆฌํ ๋๋ completable์ด ์ ํฉํ๋ค. ํ๋ก์ ํธ์์ traits๋ฅผ ์ผ์ผ๋ฉด ๋ ์ข์ ์ฝ๋๊ฐ ๋์์ ๊ฒ ๊ฐ๋ค..
- never๋ ์๋ฌด๊ฒ๋ ๋ฐฉ์ถํ์ง ์๋๋ค. complete๋ ์๊ณ error๋ ์๊ณ next๋ ์๋ค. ๊ทธ๋ฅ ํ๋ ์ด์คํ๋ ์ญํ ๋ก ์ฌ์ฉํ๋ฉด ์ ์ฉํ ๊ฒ ๊ฐ์๋ฐ, ๋จ์ํ ์คํธ๋ฅผ ํ ๋ ์ฐ๋ฆฌ๋ just๋ก ํ ๋ฒ์ ๋ฌด์กฐ๊ฑด ๋ฐฉ์ถ์ ํด์คฌ๋๋ฐ never๋ฅผ ์ผ๋ค๋ฉด ํ ์คํธํ ๋์์ด ๋ ํ์คํ๊ฒ ๋ณด์์ ๊ฒ ๊ฐ๋ค.
์ค๋ ๋๋ ๊ฒ.
- ๊ณต๋ถ๋ฅผ ํ๋ฉด ํ ์๋ก ํ๋ก์ ํธ์ ์์ฌ์ด ์ ๋ค์ด ๋ง์ด ๋ณด์ด๋ ๊ฒ ๊ฐ๋ค. ๋์ค์ ํ ๋ฒ ์ญ ๋ณด์ํด๋ณด๊ณ ์ถ๋ค!
- ์์ฆ ์ง์ค์ด ๋๋ฌด ์๋๋คใ ์ ์ ์ฐจ๋ฆฌ์!!!
- ์ธ์ฑ ๋ฉด์ ๋ถ๋ถ๋ ์ค๋น๋ฅผ ์ข ํ๋ ค๊ณ ํ๋๋ฐ ์ง์ง ์ด๋ ต๋ค.. ์๊ฐ์ ๋ง์ด ์ ๋ฆฌํด๋์ด์ผํ ๊ฒ ๊ฐ๋ค.
๋ด์ผ์ ๊ณํ.
- ๋ฉด์ ์ค๋น
์ค๋์ ๊ฐ์ฌ.
- ๊ณ์ ์ ๋งค๋ชจํธ ํ๋ CALayer๋ฅผ ์ด๋์ ๋ ์ดํดํ ์ ์๊ฒ ํด์ฃผ์ ์ ๊ฐ์ฌํด์!