1. ๋ทฐ์ปจ์ด ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ธ์ ๋ทฐ๋ชจ๋ธ์ด ์์ ํ๋ค. (Output์ด๋ ๊ณ์ฐ ์์ฑ, ํจ์ ๋ฑ์ผ๋ก)
๊ฒฐ๊ตญ, ๋ทฐ์ปจ์ ๋ทฐ๋ชจ๋ธ์ด ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ๋ทฐ์ปจ์ ํ์ํด์ผํ๋ค.
๋ทฐ์ปจ์ ๋ทฐ๋ชจ๋ธ์ ์์ ํ๋ค. ๋ทฐ์ ๋์์ผํ ์ ๋ณด๋ฅผ ๋ทฐ์ปจ์ด ๋ทฐ๋ชจ๋ธ์ ๊ฑฐ์ณ ํ์ํ๊ฒ ๋๋ ๊ฒ.
2. ์ฌ์ฉ์๋ก๋ถํฐ ๋ทฐ์ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ๋ทฐ์ปจ์ ๋ทฐ๋ชจ๋ธ์๊ฒ ๋ฒํผ์ด ๋๋ ธ๋ค๊ณ ์๋ ค์ฃผ๋ฉด ๋๋ค.
์ด๋ ๋ทฐ์์ ๋ฒํผ์ด ๋๋ ธ์ ๋์ ๋์์ ํ๋ฉด ๋๋ค.
๋ทฐ๋ชจ๋ธ์ ๋ฒํผ์ด ๋๋ฆฐ ์ก์ ์ ๊ฐ์ง๊ณ ๋ชจ๋ธ(๋ฐ์ดํฐ)๋ฅผ ๋ณํ ์ํจ๋ค.
3. ๋ทฐ๋ชจ๋ธ์์ ํด๋ก์ ๋ฑ์ ์ฌ์ฉํด ๋ชจ๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๊ผ๋ค๊ณ ์๋ ค์ค๋ค.
๋ทฐ๋ชจ๋ธ์ ๋ชจ๋ธ(๋ฐ์ดํฐ)์ ๋ก์ง์ ๊ฐ๋๋ค.
๋ชจ๋ธ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ํด๋ก์ ๋ฅผ ํตํด ๋ทฐ๋ชจ๋ธ์์ ๋ทฐ๋ก ์ ๋ฌ.
๋ทฐ๋ชจ๋ธ์์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ฉด ๋ฐ์ํ์ผ๋ก ๋ทฐ์ ์ ๋ฌํ ์ ์๋ค. (RxSwift)
๋ทฐ๋ชจ๋ธ์์ ํ์ด์ง ์ ํ ์
๋ค์ ํ๋ฉด์ ์ํ ๋ทฐ๋ชจ๋ธ์ ์์ฑํ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ , ์ด ๋ฉ์๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ค์ ํ๋ฉด์ ๋ทฐ๋ชจ๋ธ์ ๋ฆฌํดํ๋ค.
๋ทฐ๋ชจ๋ธ์ ๋คํธ์ํฌ ๋งค๋์ ๋ฅผ ๋ง๋ ๋ค.
MVVM์์ ํ๋ฉด ์ ํ์ ๋ํ ๋๋ง์ ๊ท์น?
๋ชจ๋ธ์ด๋ ๋ทฐ๋ฅผ ๋ถ๋ฆฌํ๋๋ฐ ํ๋ฉด์ ํ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง.
์์กด์ฑ ์ฃผ์ ๋ฐฉ์์ผ๋ก ๋คํธ์ํน ๊ฐ์ฒด ์ ๋ฌ(๋ทฐ๋ชจ๋ธ ์์ฑ)
network ๋งค๋์ ๋ฅผ ์ฑ๊ธํค ๋์ ํ๋กํ ์ฝ๋ก ๋ง๋ค์ด์ ๋ทฐ๋ชจ๋ธ์ ์์กด์ฑ ์ฃผ์ ์ ํตํด์ ์ฃผ์ ํด์ค ์ ์๋ค.
์ฌ๋ธ๋ฆฌ๊ฒ์ดํธ์์ ๋ทฐ์ปจ์ ์์ฑํ๊ณ ์ด๋ ๋ทฐ๋ชจ๋ธ์ ์ ๋ฌํ๊ณ ๋ทฐ๋ชจ๋ธ์ ์์ฑํ ๋ ๋คํธ์ํฌ๋งค๋์ ๋ฅผ ์์ฑ
-> ํ ์คํธ ์ฝ๋ ์ฉ์ด, ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด๋ ํ์ฅ์ฑ์ด ๋์ด์ง๋ค.
-> ์์กด์ฑ ์ฃผ์ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ์ค๋ฌด์์๋ ์์กด์ฑ ์ฃผ์ ํด์ฃผ๋ ๊ฐ์ฒด๋ค์ด ๋ง์์ง๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๊ด๋ผํ๋ ๊ฒ๋ ํ์ํ๋ค.
'
'๐ iOS > Patterns & Arch' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Design Patterns] ์ต์ ๋ฒ ํจํด (Observer Pattern) (0) | 2024.08.01 |
---|---|
[Design Patterns] ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด(Delegate Pattern) (0) | 2024.07.08 |
[ Architecture ] MVC ํจํด (0) | 2024.06.14 |
[Design Patterns] ์ฑ๊ธํค(Singleton) ํจํด (0) | 2024.06.03 |