βκΆκΈμ¦β
mvc ν¨ν΄μ λν΄ κ³΅λΆνλ μ€μ "μ mvc ν¨ν΄μμ daoλ‘ λ°λ‘ μ²λ¦¬λ₯Ό μ νκ³ serviceμμ μ²λ¦¬λ₯Ό νλκ±ΈκΉ?" μ λν κΆκΈμ¦μ΄ μμ΄μ κΈμ μμ±νκ² λμλ€.
κ·ΈλΌ μΌλ¨ mvcμ λν΄μ μμμΌ νλ€. (mvpλ μλκ³ mvc?)
mvcλ?
Model + View + Controllerμ 첫 κΈμλ₯Ό λ΄ μ©μ΄λ‘, MVC ν¨ν΄μ΄λΌκ³ λΆλ¦¬μ΄λ€.
MVC ν¨ν΄..?!
μννΈμ¨μ΄ λμμΈ ν¨ν΄μ΄λΌλ κ°λ μ΄ μλλ° μ΄ ν¨ν΄ μ€ νλκ° MVC ν¨ν΄μ΄λ€.
μλ κ·ΈλΌ μννΈμ¨μ΄ λμμΈ ν¨ν΄μ λλ°?
(νλμ λ¬Όμνκ° νλμ λ¬Όμνλ₯Ό λ³κ³ ,, λ λ³κ³ ,,)
(ν¨ν΄μ΄λ λ§μ μκΎΈ μκ°ν΄μ μ μ κ²μννΈ λΆκ΄΄κ° μλ€.)
μννΈμ¨μ΄ λμμΈ ν¨ν΄
μ¬λλ€μ μννΈμ¨μ΄ νλ‘κ·Έλ¨μ λ§λ€λ€κ° λκ°μ μ€μλ₯Ό λ°λ³΅νκ² λλ€.
κ·Έ μ€μμ ν΄κ²°μ± μ μ’ λ₯λ³λ‘ μ 리νμ¬ λ§λ€μ΄ λμ κ²μ΄ μννΈμ¨μ΄ λμμΈ ν¨ν΄μ΄λ€.
(ν° μ’ λ₯λ‘λ μμ± ν¨ν΄ / ꡬ쑰ν¨ν΄ / νμ ν¨ν΄μΌλ‘ λλμ΄μ§κ³ , MVC ν¨ν΄μ ꡬ쑰 ν¨ν΄μ μνλ€.)
μ 리νμλ©΄ μ ν리μΌμ΄μ μ ꡬ쑰λ₯Ό 3κ°(Model / View / Controller)λ‘ μͺΌκ°μ κ°κ°μ μν μ λλμ΄ λΆλ΄νμ¬ μΌμ νλ€κ³ μκ°νλ©΄ λλ€.
μ¦, MVCλ μ ν리μΌμ΄μ μ ꡬ쑰λ₯Ό μΈ κ°μ§ μ£Όμ μ»΄ν¬λνΈλ‘ λλμ΄ κ°λ°μ νλ λ°©μμ λ§νλ€.
MVC ν¨ν΄ νλ¦
MVC ν¨ν΄ νλ¦μ λν΄μ μ΄ν΄λ³΄μ.
μλ₯Ό λ€μ΄, μ¬μ©μκ° νλμ μΉ νμ΄μ§μμ λ‘κ·ΈμΈμ νλ €κ³ νλ€.
κ·Έλμ νμλ₯Ό λ³Έλ€λ©΄
β μ¬μ©μκ° id, pwdλ₯Ό μ λ ₯ν ν λ‘κ·ΈμΈ λ²νΌμ λλ₯Έλ€. (VIEW)
β‘ λ²νΌμ λλ₯΄λ©΄ idμ pwdμ μ λ³΄κ° CONTROLLERμκ² λμ°©νκ² λλ€. (CONTROLLER)
β’ CONTOLLERλ MODELμκ² λ‘κ·ΈμΈ μμ²μ 보λΈλ€. (MODEL)
β£ SERVICEμμ DAOλ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ μλ idμ pwdλ₯Ό λΉκ΅νλ€.
β€ κ²°κ³Ό κ°μ CONTROLLERμκ² λ³΄λΈλ€.
β₯ CONTOLLERκ° κ²°κ³Όκ°μ VIEWλ‘ λ³΄μ¬μ£Όκ² λλ€. (λ‘κ·ΈμΈ μ±κ³΅ / λ‘κ·ΈμΈ μ€ν¨)
λ‘ μ΄μ΄μ§κ² λλ€.
μ¬κΈ°μ λ κΆκΈμ¦μ β£λ²μ΄μλ€.
κ·Έλ₯ DAOλ‘ λ°λ‘ κ²μ¬νλ©΄ λμ§ μλ? ν΄μ κ²μμ ν΄λ΄€λ€.
κ²°λ‘ μ μΌλ‘ μμ κ°μ κΆκΈμ¦μ κ°μ§ κ²μ ν΄λΉ κ°λ μ μ ννκ² μ΄ν΄νκ³ μμ§ μμμ μκΈ΄ κ²μ΄μλ€.
DAOμ SERVICEλ κ°κ°μ μν μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ΄λ€.
SERVICE
λΉμ¦λμ€ λ‘μ§μ λ€λ£¨λ κ°μ²΄μ΄λ€.
CONTROLLERμ MODELμ¬μ΄μμ μ€μ¬ μν μ νλ€.
DAO
λ°μ΄ν° μ‘μΈμ€ μμ μ νλ κ°μ²΄
μ¬κΈ°μ λ°μ΄ν° μ‘μΈμ€ μμ μ λ°μ΄ν° CRUD (λ§λ€κ³ , μ½κ³ , μμ νκ³ , μμ νλ) μμ μ λ»νλ€.
λΉμ λ₯Ό νμλ©΄, SERVICEλ μ£Όλ°©μμ μ¬λ£λ₯Ό κ°κ³ μ리(λ‘μ§ λ€λ£¨κΈ°)νλ λλμ΄κ³ DAOλ λμ₯κ³ μ μλ μ¬λ£λ₯Ό κΊΌλ΄κ³ , λ€μ μ±μλ£λ νμ(λ°μ΄ν° μ κ·Ό μμ )λΌκ³ ν μ μλ€.
β£λ²μ μμΈν λ€μ¬λ€ 보면
β£-1. SERVICEμμ λ‘κ·ΈμΈ λ‘μ§μ μννκ³ DAOμκ² DBμ μλ μ¬μ©μμ μ 보λ₯Ό κ°μ Έμλ¬λΌκ³ μμ²νλ€.
β£-2. DAOμμ DB μ κ·Ό : DBμμ ν΄λΉ μ¬μ©μ μ 보λ₯Ό κ°μ Έμ¨λ€. (λ°μ΄ν° μ‘μΈμ€ μμ : READ)
β£-3. SERVICEμμ λΉκ΅ : DAOμκ² λ°μ μ¬μ©μ μ 보μ μ λ ₯λ°μ μ 보λ₯Ό λΉκ΅ν ν CONTROLLERμκ² κ²°κ³Όκ°μ 보λΈλ€.
μ΄λ κ² μν μ λΆλ΄ν¨μΌλ‘μ¨, μ½λ μ μ§λ³΄μ, μλΉμ€κ° dbμ μμ‘΄νμ§ μκ² λκ³ , νμ₯μ± νλ, μ½λ μ¬μ¬μ©μ± μ¦κ°μ μ΄μ μ΄ μκΈ° λλ¬Έμ΄λ€.
βκΆκΈμ¦ ν΄κ²°β
νμλ serviceμ daoμ μν μ νΌλνκ³ μμλ κ²μ΄μλ€.
κ°λ μ μ λλ‘ μκ³ μμλ€λ©΄ μμ κ°μ κΆκΈμ¦μ΄ λ€μ§ μμμ κ²μ΄λ€.
κ·Έλ¬λ κ°λ μ μ 리ν΄λ³΄λκΉ μ μ΅ν μκ°μ΄μκ³ μμ λν΄ μ λλ‘ μ΄ν΄νκ² λλ€.
'πΈπ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
TCPμ UDPμ μ°¨μ΄ (0) | 2023.10.06 |
---|---|
μ±κΈν€ ν¨ν΄(singleton pattern) (0) | 2023.09.12 |
ν΄λΌμ°λ μ»΄ν¨ν / Iaas / Paas / Saas (0) | 2023.08.24 |
Oracleκ³Ό MySQLμ μ°¨μ΄ λ° κ°λ (0) | 2023.08.24 |
REST API / RESTλ / RESTful (0) | 2023.08.21 |