[μμΈ IT] MVC μΉ νλ μμν¬
π’ κ°μ
λ€μ΄λ² κ°μ λ±λ΄λ 볡μ‘ν μΉμ¬μ΄νΈλ, μμμ κΈ°λ₯λ€μ΄ λ§μμ§κ³ , κ΅¬μ‘°κ° μ΄κ²μ κ² μ½νμλ€λ κ²μ΄ λκ»΄μ§λλ€.
λκ° κ±°λν΄μ§κ³ 볡μ‘ν΄μ§μλ‘, νΉμ κΈ°μ€μΌλ‘ λΆλ¦¬,λͺ¨λνν΄μ μ κ·Όμ ν΄μΌν©λλ€.
κ΅κ°κΈ°κ΄μ μ λ²,μ¬λ²,νμ μΌλ‘ λλλ―μ΄, μΉμ¬μ΄νΈλ₯Ό λΉλ‘―ν μννΈμ¨μ΄λ
- Model
- View
- Controller
λΌλ μ κ·Όλ²μ΄ λ§μ΄ μ¬μ©λ©λλ€.
π’ MVC Web Framework
MVC ν¨ν΄
- Model : "λ°μ΄ν°"μ κ΄λ ¨λ κ²
- Veiw : λμ 보μ΄λκ², μΉμ κ²½μ° HTML/CSS λνλ΄λ μμλ€
- Controller : λκ°λ₯Ό μ μ΄νλκ², νλ‘κ·Έλλ°μ λλΆλΆμ μ°¨μ§
κ²μνμ μμλ‘ λ΄ μλ€.
Model
π κ²μνμ μ°μ΄κ³ μ½νκ³ μμ λλ κΈλ€μ, DBμ λ°μ΄ν°λ‘ μ μ₯λ κ²μ
λλ€.
μ΄ λ°μ΄ν°μ νμμ μ§μ νκ³ , μ μ₯νκ³ λΆλ¬μ€λ μμ
λ€μ κ΄ν μ½λλ€μ΄ Model
Veiw
π μ΄κ±Έ, μ¬μ©μλ€μ΄ λͺ©λ‘κ³Ό κΈ, μ λ ₯νλ©΄ λ±μΌλ‘ μκ°μ μΌλ‘ λ³Ό μ μλλ‘ ν΄μ£Όλ HTML/CSS λ±μ μμκ° View
Controller
π Modelμ λ°μ΄ν°λ₯Ό Viewμ μ°κ²°μμΌμ μ¬μ©μκ° GUIνλ©΄μ ν΅ν΄ λ°μ΄ν°λ₯Ό μ½κ³ ,μ°κ³ ,μ§μ°κ³ ν μ μλλ‘ μ λ°μ μ μ΄λ₯Ό νλ ννΈκ° Controller μ λλ€.
μμ , "μ μ μΉ vs λμ μΉ" ν¬μ€ν μμ λμ μΉμ "μλΉ"μ λΉμ νμ΅λλ€.
Modelμ μ΄ μλΉμ μλ£νμ°½κ³ λ₯Ό κ΄λ¦¬νκ³ , μμμ μ리νλ "μ£Όλ°©μ₯"
Viewλ μ£Όλ°©μ₯μ΄ λ΄μ¨ μμμ νλ μ΄ν
νλ "μ§μ"
Controllerλ μ£Όλ¬Έλ λ°κ³ μλΉλ νλ 맀λμ λΌκ³ μκ°νλ©΄ μ λΉν©λλ€.
μ΄λ κ² Model, View, Controllerλ₯Ό κ°μΆ μΉμ¬μ΄νΈλ₯Ό μ½λλ‘ κΈ°λ³Έ 골격μ ν λ² μ§κ³ λλ©΄, κ·Έ μ½λλ₯Ό κΈ°λ°μΌλ‘ λ΄ μ¬μ΄νΈλ₯Ό κ°λ°νλ μΌμ΄ μμν΄μ§κ² μ§λ§, μ΄λ° ꡬ쑰 μ체λ₯Ό κ°λ°νλ κ²μ κ½€λ μκ°μ΄ 걸릴 κ²μ λλ€.
λ€νμ΄λ μ¬λ¬ νμ¬λ λΉμ리 λ¨μ²΄, νΉμ κ°μΈλ€μ΄ μ΄ MVC ꡬ쑰μ κΈ°λ³Έ μ€κ³κ° κ°μΆ°μ§ μνμΈ
"MVC μΉ νλ μμν¬" λ κ±Έ μ 곡ν©λλ€.
λ§μΉ, 건물μ κΈ°μ΄ κ³¨κ²©κ³Ό μλ,μ κΈ°,λλ°©μ΄ μ€μΉλ μ±λ‘ μ¬μ©μκ° μνλλλ‘ μ§μ κ°μ‘°νκ³ κΎΈλ° μ μκ² μ 곡νλ κ²μ λλ€.
"νλ μμν¬"λ λ¨μ΄ μ΄λ―Έ μ§λμ μ½λλ μ μμ λΌμ΄λΈλ¬λ¦¬μ λΉμ·νμ§λ§, μ΄ λμ κ°λ¨ν λΉκ΅νμλ©΄
λΌμ΄λΈλ¬λ¦¬(Library) | νλ μμν¬(Framework) |
κ°κ° κ°λ³μ μΈ κΈ°λ₯λ€μ.. λΉμ νμλ©΄, λ¬Έμ§μ΄λ μμ‘° λ±μ λΆμν "κ°μ Έλ€ μ°λ κ²" |
λΆμ‘±νλ€μ΄ μ°κ²°λμ΄μ.. κΈ°μ΄μ μΈ μ ν 골격μ κ°μΆ μν "κΈ°λ³Έ νμμ λ§λΆμ¬ λ§λλ κ²" |
μΉ νλ‘κ·Έλ¨μΈμ΄μλ λ€μν μΈμ΄κ° μκ³ , λ μΈμ΄λ§λ€ λ€λ₯Έ MVC μΉ νλ μμν¬κ° μμ΅λλ€.
μλ‘ λ€λ©΄, νκ΅μμ, Java μΈμ΄λ‘ λμνλ Spring νλ μμν¬, php μ Laravel λ±μ΄ μμ§μ.
νΉμ΄νκ² MVCλΌκ³ μνκ³ , MTV(T,Template) λΌκ³ νλ pythonμ Django, Ruby μ Ruby on Rails, ν¨μν μΈμ΄ Scalaμ Play λ±λ± κ΅μ₯ν λ§λ€κ³ ν©λλ€.
νμ, λ³ΈμΈμ΄ μ΄λ νμ¬μμ μΌμ νλκ°, λλ μ΄λ€ μΉμ¬μ΄νΈλ₯Ό λ§λλκ°μ λ°λΌμ, λ¬΄μ¨ μΈμ΄μ νλ μμν¬λ₯Ό μ¬μ©ν μ§ κ²°μ νλ©΄ λ©λλ€.
λλ΅μ μΈ κ΅¬μ‘°λ μ¬μ©λ²μ λ€ λΉμ·ν΄μ, ν λκ°μ§ μ¨λ³΄λ©΄ μλ‘μ΄ κ±Έ μ ν΄λ μ½κ² ν°λν μ μμ κ²μ λλ€.
λ¬Έμ λ μλͺ»λμκ±°λ λ―Έν‘ν μ€λͺ μμΌλ©΄ μλ €μ£ΌμΈμ. π