π Architecture Pattern
π« μν€ν μ² ν¨ν΄
- μλ‘ λ€λ₯Έ μμ€ν κ³Ό νκ²½μμ μλλκ³ ν μ€νΈλ μ°μν μ¬λ‘λ₯Ό μ νννκ³ μΆμνν κΈ°μ
- μ΄μ μμ€ν μμ μ±κ³΅μ μ΄μλ μμ€ν ꡬ쑰 κΈ°μ
- ν΄λΉ ν¨ν΄μ μΈμ μ¬μ©νκΈ°μ μ μ νκ³ μ μ νμ§ μμμ§μ λν μ 보 ν¬ν¨
- ν¨ν΄μ κ°μ κ³Ό μ½μ μ λν μμΈν λ΄μ© ν¬ν¨
π« MVC
Model
, View
, Controller
μ μ½μ
μ¬μ©μ μΈν°νμ΄μ€λ‘λΆν° λΉμ¦λμ€ λ‘μ§μ μΈ κ°μ§ ννΈλ‘ λΆλ¦¬νμ¬ μλ‘ μν₯ μμ΄ κ°λ°ν μ μλ μ€κ³κ° κ°λ₯
λΉμ¦λμ€ λ‘μ§
: μ¬μ©μκ° μνλ κΈ°λ₯μ μννκΈ° μν΄ νμν λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ‘μ§ (Input λ°κ³ , Process νκ³ , Output λ΄λ³΄λ΄κΈ°)
Model
: DBμ μ°λνμ¬ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λΆλΆView
: μ¬μ©μμκ² λ³΄μ¬μ§λ λΆλΆ- νμκ°μ λ²νΌ, λ‘κ·ΈμΈ λ²νΌ
Controller
: μ¬μ©μμ μ λ ₯μ λ°μ μ²λ¦¬νλ λΆλΆView
μμ λ²νΌμ λλ₯΄λ©΄,Controller
κ° μμ²μ λ°μμ μ²λ¦¬
𫧠Model
- λ°μ΄ν°λ₯Ό μ²λ¦¬νλ μμ
- λ°μ΄ν°λ² μ΄μ€μ μ°λμ μν DAO(Data Access Object)μ λ°μ΄ν°μ ꡬ쑰λ₯Ό νννλ DO (Data Object)λ‘ κ΅¬μ±λ¨
i.e. κ²μμ μν ν€μλκ° λμ΄μ€λ©΄ DBμμ κ΄λ ¨λ μνμ λ°μ΄ν°λ₯Ό λ°μ λ·°μ μ λ¬
𫧠View
- λ°μ΄ν°λ₯Ό 보μ¬μ£Όλ νλ©΄ μ체μ μμμ λ»ν¨
- μ¬μ©μ μΈν°νμ΄μ€(UI) μμλ€μ΄ μ¬κΈ°μ ν¬ν¨λλ©°, λ°μ΄ν°λ₯Ό κ° μμμ λ°°μΉν¨
- λ·°μμλ λ³λμ λ°μ΄ν°λ₯Ό 보κ΄νμ§ μμ
i.e.κ²μ κ²°κ³Όλ₯Ό 보μ¬μ£ΌκΈ° μν΄ λͺ¨λΈμμ κ²°κ³Ό μν 리μ€νΈ λ°μ΄ν°λ₯Ό λ°μ
𫧠Controller
- λͺ¨λΈ(Model)κ³Ό λ·°(View) μ¬μ΄μμ λΈλ¦Ώμ§ μν μ μν
- μ±μ μ¬μ©μλ‘λΆν° μ λ ₯μ λν μλ΅μΌλ‘ λͺ¨λΈ λ° λ·°λ₯Ό μ λ°μ΄νΈνλ λ‘μ§μ ν¬ν¨
- μ¬μ©μμ μμ²μ λͺ¨λ
Controller
λ‘ λ€μ΄μ¨λ€. (μ§νν΄μΌ νλ€.) - 컨νΈλ‘€λ¬λ‘ λ€μ΄μ¨ μμ²μ μ΄λ»κ² μ²λ¦¬ν μ§ κ²°μ νμ¬ λͺ¨λΈλ‘ μμ²μ μ λ¬ν¨
i.e. μΌνλͺ°μμ μνμ κ²μνλ©΄ κ·Έ ν€μλλ₯Ό λ°μμ μ
λ ₯μ μ²λ¦¬νμ¬ λͺ¨λΈκ³Ό λ·°μ μ μ νκ² μ λ¬
π« Layered Architecture
MVC ν¨ν΄κ³Ό λΉμ·ν μ΄μΌκΈ°, λ€λ§ λ μ΄μ΄(κ³μΈ΅) κΈ°μ€μΌλ‘ μ€λͺ
μ μ¬ κ΄μ¬μ¬λ₯Ό λ μ΄μ΄λ‘ λ¬Άμ΄ μνμ μΌλ‘ λΆλ¦¬ν ꡬ쑰
μΌλ°μ μΌλ‘ 3κ³μΈ΅ λλ 4κ³μΈ΅μΌλ‘ ꡬμ±λ¨
νλ‘μ νΈμ λ°λΌ 컀μ€ν°λ§μ΄μ§ν΄μ μ¬μ©
𫧠Presentation
- μ¬μ©μ μΈν°νμ΄μ€λ₯Ό μ 곡νλ κ³μΈ΅
- μ¬μ©μκ° μμ²μ 보λ
𫧠Business
- λΉμ¦λμ€ λ‘μ§μ μ²λ¦¬νλ κ³μΈ΅
- μ¬μ©μμ μμ²μ μ²λ¦¬νκ³ , λ°μ΄ν°λ₯Ό μ²λ¦¬νλ κ³μΈ΅
𫧠Data (Access)
- λ°μ΄ν°λ² μ΄μ€μ μ°λνλ κ³μΈ΅
𫧠U_μ€λͺ
- μλΈ μμ€ν μ μΈν°νμ΄μ€λ₯Ό λͺ¨λΈλ§νλλ° μ΄μ©
- κ° μΈ΅μ΄ μλΉμ€ μ§ν©μ μ 곡νλ κ³μΈ΅ μ§ν©(μΆμ λ¨Έμ )μΌλ‘ μμ€ν μ ꡬμ±
- μμ΄ν κ³μΈ΅μ μλ μλΈ μμ€ν
μ μ μ¦μ κ°λ°μ μ§μ. κ³μΈ΅ μΈν°νμ΄μ€κ° λ³κ²½λ λ, μΈμ κ³μΈ΅μλ§ μν₯μ μ€.
𫧠U_μ₯μ
- μμ€ν μ μ μ¦μ μΈ κ°λ°μ μ§μνλ€. ν κ³μΈ΅μ΄ κ°λ°λ¨μ λ°λΌ, κ·Έ κ³μΈ΅μ μν΄ μ 곡λλ μλΉμ€λ€μ μΌλΆλ₯Ό μ¬μ©μκ° μ΄μ©ν μ μλ€.
- λ³κ²½ κ°λ₯νλ©° μ΄μ κ°λ₯νλ€. κ³μΈ΅μ μΈν°νμ΄μ€κ° λ³κ²½λμ§ μλ ν, λλ±ν λ€λ₯Έ κ³μΈ΅μ μν΄ λ체λ μ μλ€.
𫧠U_λ¨μ
- μμ€ν μ ꡬ쑰ννλ κ²μ΄ μ΄λ €μΈ μ μλ€. μ΅μμ μμ€μ μ¬μ©μκ° μꡬνλ μλΉμ€λ κ·Έ μλμ μ¬λ¬ κ³μΈ΅μ΄ μ 곡νλ μλΉμ€μ μ κ·ΌνκΈ° μν΄ μΈμ κ³μΈ΅μ βλ«κ³ μ§λκ°μΌβ ν μλ μλ€. μ΄λ° λ°©μμ μμ€ν μ μΈλΆ κ³μΈ΅μ΄ λ°λ‘ κ·Έ μ΄μ μ κ³μΈ΅μ μ’ μλμ§ μμμ λ°λΌ κ³μΈ΅ λͺ¨λΈμ λ§κ°λ¨λ¦¬κ² λλ€.
- μ¬λ¬ μμ€μ λͺ
λ Ήμ΄ ν΄μμ΄ νμνκΈ° λλ¬Έμ μ±λ₯μ΄ λ¬Έμ κ° λ μ μλ€. μ΅μμ κ³μΈ΅μΌλ‘λΆν°μ μλΉμ€ μμ²μ μ²λ¦¬λκΈ° μ μ μμ΄ν κ³μΈ΅μμ μ¬λ¬ λ² ν΄μλμ΄μΌ νλ€.