곡λΆν κ²
MVC, MVP, MVVM, AAC
μκ²λ κ²
1. MVC
μ°μ κ°μ₯ μΌλ°μ μΌλ‘ μ¬μ©λλ μν€ν μ³ ν¨ν΄μ΄λ€. Model, View, Controller λ‘ λλλ€.
Model
μ λ°μ΄ν° μμ±, μμ , κ°±μ λ±μ λ‘μ§μ΄ λ€μ΄μλ€.View
λ μ¬μ©μμκ² λ³΄μ¬μ§λ νλ©΄μ΄λ€.Controller
λ μ¬μ©μμ μ
λ ₯μ μ²λ¦¬νλ€.
μ°μ μ¬μ©μκ° View
λ₯Ό ν΅ν΄μ μ
λ ₯μ΄ λ€μ΄μ€κ³ Controller
κ° μ΄λ₯Ό μ²λ¦¬νλ€. μ΄ λ μ
λ ₯μ λΆμν΄μ Model
κ³Ό View
μ κ°±μ μμ²μ νλ€. Model
μ λ°μ΄ν°λ₯Ό κ°±μ νκ³ View
λ UI
λ₯Ό κ°±μ νλ€. μ 리νμλ©΄, Controller
λ Model
κ³Ό View
κ° λ¬΄μμ ν΄μΌν μ§ μκ³ μκ³ μ΄λ₯Ό ν΅μ νκ³ μλ€. Controller
λ₯Ό ν΅ν΄μ Model
κ³Ό View
κ° μ°κ²°λμ΄ μμΌλ―λ‘ μλ‘ μμ‘΄μ±μ λκ² λλ€. μλλ‘μ΄λμμλ View
μ Controller
κ° Activity, Fragment
μ ν¬ν¨λμ΄ μλ€. Inflater
μ Listener
λ₯Ό μκ°νλ©΄ λλ€.
μ₯μ
- νλμ μ‘ν°λΉν° ν΄λμ€μ λΉμ¦λμ€ λ‘μ§μ λͺ¨λ λ΄μ μ μμΌλ―λ‘ κ°λ°μ λΉ λ₯΄κ³ μ½κ² μ§νν μ μλ€.
λ¨μ
- μ μ§ λ³΄μκ° μ΄λ ΅λ€. λν μμμ λ§νλ κ²μ²λΌ λ·°μμ λͺ¨λΈμ μ§μ νΈμΆνλ―λ‘ λ·°μ λͺ¨λΈμ μμ‘΄μ±μ΄ λ§€μ° λλ€. λ°λΌμ ν μ€νΈ μ½λ μμ±μ΄ μ΄λ €μ μ§λ€.
2. MVP
Model
κ³Ό View
μ μμ‘΄μ±μ μ€μ΄κΈ° μν΄ λ±μ₯ν μν€ν
μ³ ν¨ν΄μ΄λ€. Model, View, Presenter λ‘ λλκ³ μ 체μ μΈ λλμ λΉμ·νλ€. νμ§λ§ Model
κ³Ό View
κ° μλ‘λ₯Ό μ§μ μ°Έμ‘°ν μ μλ€. 무쑰건 Presenter
λ₯Ό ν΅ν΄μλ§ λ°μ΄ν°λ₯Ό μ λ¬ν μ μλ€.
Model
μ λ°μ΄ν° μμ±, μμ , κ°±μ λ±μ λ‘μ§μ΄ λ€μ΄μλ€.View
λ μ¬μ©μμκ² λ³΄μ¬μ§λ νλ©΄μ΄λ€.Presenter
μ λ·°μμ μμ²ν μ λ³΄λ‘ λͺ¨λΈμ κ°κ³΅νμ¬ λ·°μκ² μ λ¬νλ€.
μ¬μ©μκ° View
λ₯Ό ν΅ν΄μ μ
λ ₯μ΄ λ€μ΄μ€κ³ Presenter
κ° μ΄λ₯Ό μ²λ¦¬νλ€. Presenter
λ Model
μκ² λ°μ΄ν°λ₯Ό μμ²νκ³ λ°μ΄ν°λ₯Ό μ λ¬λ°λλ€. μ΄ν κ°κ³΅ν λ°μ΄ν°λ₯Ό View
μ μ λ¬νλ€. View
λ λ°μ΄ν°λ₯Ό νλ©΄μ 보μ¬μ€λ€.
μ₯μ
- Modelκ³Ό Viewμ μμ‘΄μ±μ μ κ±°νλ€.
λ¨μ
View
μPresenter
μ μμ‘΄μ±μ΄ λμμ‘λ€. λν μ€λ³΅ μ½λκ° λ°μν μ μλ€. μμλ₯Ό λ€μ΄λ³΄μ. λ‘κ·ΈμΈκ³Ό λ‘κ·Έμμμ μ΄νμ κΈ°λ³Έ κΈ°λ₯μ΄ λμ΄λ²λ Έλ€. μ΄ μ΄ν리μΌμ΄μ μ μ¬λ¬ νμ΄μ§κ° μκ³ λ‘κ·ΈμΈ κΈ°λ₯μ κ²½μ° λ‘κ·ΈμΈ μ‘ν°λΉν°λ‘ μ΄λνμ¬ λ‘κ·ΈμΈμ μ§ννλ€. μ΄ λ λͺ¨λ νμ΄μ§μ λ‘κ·Έμμ κΈ°λ₯μ λ°°μΉνλ€κ³ νμ λ λͺ¨λPresenter
μ λ‘κ·Έμμ λ‘μ§μ λ°°μΉν΄μΌ νλ€. μ΄λ»κ² ν΄κ²°ν μ μμκΉ? μ€λ³΅λPresenter
λ₯Ό λΆλ¦¬ν κ²μ΄ λ°λ‘View Model
μ΄λ€.
3. MVVM
μ΄λ¬ν λ¬Έμ μ μ ν΄κ²°νκΈ° μν΄ λ±μ₯ν ν¨ν΄μ΄λ€. Model, View, View Model λ‘ λλλ€. κ°μ₯ ν° νΉμ§μ μ»΄ν¬λνΈ λΆλ¦¬κ° μ λ§ μ λμ΄ μλ€λ κ²μ΄λ€. λν μ°Έμ‘°νλ κ²μ΄ λͺ ννλ€.
μ΄λ₯Ό μ½κ² ꡬνν μ μλλ‘ Android μμλ Live Data
μ View Model
μ μ 곡νλ€.
Model
μ λ°μ΄ν° μμ±, μμ , κ°±μ λ±μ λ‘μ§μ΄ λ€μ΄μλ€.View
λ μ¬μ©μμκ² λ³΄μ¬μ§λ νλ©΄μ΄λ€.View Model
μ λ·°μμ μμ²ν μ λ³΄λ‘ λͺ¨λΈμ κ°κ³΅νλ€.
μ¬μ©μκ° View
λ₯Ό ν΅ν΄μ μ
λ ₯μ΄ λ€μ΄μ€κ³ View Model
μκ² λͺ
λ Ήμ νλ€. View Model
μ νμν λ°μ΄ν°λ₯Ό Model
μ μμ²νκ³ λ°μ΄ν°λ₯Ό μ λ¬λ°λλ€. μ΄ν λ°μ΄ν°λ₯Ό κ°κ³΅νλ€. μ΄ λ observer
λ‘ μΈν΄ View
κ° μλμΌλ‘ κ°±μ λλ€.
μ₯μ
View
μPresenter
μ μμ‘΄μ±μ μ κ±°νλ€. λͺ¨λ λΆλΆμ΄ λ 립λμ΄ μ‘΄μ¬νλ―λ‘ λͺ¨λνλ₯Ό ν΅ν κ°λ°μ΄ μ©μ΄νλ€. λν ν μ€νΈμ μ μ§λ³΄μ λν μ©μ΄νλ€.
곡λΆν κ²
MVVM νλ‘μ νΈ μ½λ λΆμ
λλ μ
μ΄μ , μ€λ LiveData
μ ViewModel
κ³Ό κ΄λ ¨νμ¬ μ λ§ λ§μ΄ μ°Ύμλ³Έ κ² κ°λ€. κ·Έλλ μμ§ μ΄λ ΅κ³ 곡λΆκ° λ§μ΄ νμνλ€. MVVM
μ΄ μμ μ΅μΌλ©΄ MVP
λ 곡λΆλ 곡λΆν΄λ³΄λ €κ³ νλ€.
'π» κ°λ° > iOS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TIL] 22.03.22 (0) | 2022.03.22 |
---|---|
[TIL] 22.03.20 (0) | 2022.03.20 |
[TIL] 22.03.17 (0) | 2022.03.17 |
[TIL] 22.03.16 (0) | 2022.03.16 |
[TIL] 22.03.15 (0) | 2022.03.15 |