π MVC ν¨ν΄μ΄λ?
μννΈμ¨μ΄ μ€κ³ μ μ¬μ©νλ μννΈμ¨μ΄ ν¨ν΄μ ν μ’ λ₯μ λλ€.
Model-View-Controller ν¨ν΄μ μ½μμ λλ€.
μ΄ ν¨ν΄μ μ¬μ©ν¨μΌλ‘μ¨, μ¬μ©μ μΈν°νμ΄μ€(Interface)λ‘λΆν° λΉμ¦λμ€ λ‘μ§(Logic)μ λΆλ¦¬νκ³ ,
μ ν리μΌμ΄μ μ μκ°μ μμμ κ·Έ μ΄λ©΄μμ μ€νλλ λΉμ¦λμ€ λ‘μ§ κ°μ μν₯μ μ΅μνμΌλ‘ μ€μ¬, νλ‘κ·Έλ¨μ μ μ§ λ³΄μμ±μ λμ΄κ³ , μ±λ₯μ ν₯μ μν¬ μ μμ΅λλ€.
μ¦, μ¬μ©μ μΈν°νμ΄μ€λ‘λΆν° λΉμ¦λμ€ λ‘μ§μ λΆλ¦¬νμ¬
μ ν리μΌμ΄μ μ μκ°μ μμλ λΉμ¦λμ€ λ‘μ§μ μλ‘ μν₯ μμ΄ μ½κ² κ³ μΉ μ μλ
μ ν리μΌμ΄μ μ λ§λ€κΈ° μν μννΈμ¨μ΄ λμμΈ ν¨ν΄μ΄λΌκ³ ν μ μμ΅λλ€.
π MVC ν¨ν΄μ ꡬμ±μμμ μμΉ
Model
- λ°μ΄ν°μ λΉμ¦λμ€ λ‘μ§μ κ΄λ¦¬νλ€. ⇒ λ°μ΄ν°μ κ΄λ ¨λ λΆλΆ
- μ£Όλ‘ μν λ³νλ₯Ό μ²λ¦¬νλ€. (μ΅κ·Όμλ Entity, VO, Aggregateλ‘ λλμ΄μ κ΄λ¦¬νλ€. -> λλ©μΈ μ£Όλ μ€κ³(DDD))
- λ°μ΄ν°μ κ·Έ λ°μ΄ν°λ₯Ό ν΅ν νλμ κ°λ κ°μ²΄ - View, Controllerμ λν μμ‘΄μ κ°μ§λ©΄ μλλ€.
- μ€λ‘μ§ λ°μ΄ν°μ λν μμλ‘μ§ λ§ μ‘΄μ¬ν΄μΌ νλ€.
View
- Modelμ λ°μ΄ν°λ₯Ό μ¬μ©ν΄ μκ°μ μΈ νλ©΄μ ꡬμ±νλ μν μ΄λ€. ⇒ μ¬μ©μμκ² λ³΄μ¬μ§λ λΆλΆ
- μ¬μ©μμκ² λ³΄μ¬μ§ μΈν°νμ΄μ€(UI)λ₯Ό λ΄λΉνλ Layer μ΄λ€
- Modelκ³Ό μμ‘΄μ±μ κ°μ§μλ μκ³ μκ°μ§μλ μλ€.
- μ¬κΈ°μ λ§νλ 'μμ‘΄'μ μ½λμμ μμ‘΄μ΄ μλ, μμ λλ©μΈ λ°μ΄ν°μ λν μμ‘΄μ λ§νλ€.
μ¦, Viewμ μ¬μ©λλ κ°μ μ€λ‘μ§ Modelμ ν΅ν΄μ μ λ¬λ κ°μ΄μ΄μΌλ§ νλ€λ κ²μ΄λ€.
- μ¬κΈ°μ λ§νλ 'μμ‘΄'μ μ½λμμ μμ‘΄μ΄ μλ, μμ λλ©μΈ λ°μ΄ν°μ λν μμ‘΄μ λ§νλ€.
- λ°μ΄ν° λ° λ‘μ§κ³Ό κ΄λ ¨λ μ½λκ° μμ΄μΌ νλ€.
- Controllerμλ μμ‘΄μ±μ κ°μ§λ©΄ μλλ€.
Controller
- μ¬μ©μμ μ λ ₯μ λ°μμ μ²λ¦¬νλ μν
- μΌμ’ μ μ€κ°μ μν μ νλ€
- Modelμ λ³κ²½νκ³ Viewλ₯Ό κ°±μ ⇒ Modelκ³Ό Viewλ₯Ό μ΄μ΄μ£Όλ λΆλΆ
- "Controllerλ Modelκ³Ό Viewμ μμ‘΄ν΄μΌ νλ€!"
- μ¬κΈ°μ λ§νλ 'μμ‘΄'μ, μ€κ°μ μν λ‘μμ μμ‘΄μ λ§νλ€. μ¦, Controller νΌμ λ°μ΄ν°(Model μμ)μ λν μ²λ¦¬λ₯Ό λ¨λ μΌλ‘ νλ©΄ μλλ€λ λ§μ΄λ€.
μΆμ²:
'Architecture' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Layered Architecture μμ보기 (1) | 2023.11.02 |
---|---|
μμ© μλΉμ€λ μ΄λ»κ² ꡬνν΄μΌ νλκ° (0) | 2023.03.25 |
λ°±μλ μν€ν μ² κ°μ(2) - DIP (0) | 2023.01.22 |
λ°±μλ μν€ν μ² κ°μ (0) | 2023.01.16 |