MVC ν¨ν΄
μννΈμ¨μ΄λ₯Ό Model-View-Controller μ£Όμ ꡬμ±μμλ‘ λΆλ¦¬νμ¬ κ°λ°νλ λ°©λ²λ‘
β’
Model : λ°μ΄ν°μ λΉμ¦λμ€ λ‘μ§μ λ΄λΉ
β’
View : μ¬μ©μ μΈν°νμ΄μ€λ₯Ό νν
β’
Controller : λͺ¨λΈκ³Ό λ·°λ₯Ό μ μ΄νλ μν
μΉκ°λ°μμμ MVC ν¨ν΄
β’
Model: λ°μ΄ν°λ² μ΄μ€μ μνΈ μμ©νμ¬ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ³ μ μ₯νλ λΆλΆ
β¦
Service
β¦
DTO
β¦
DAO
β’
View: μΉ νμ΄μ§λ₯Ό νννλ©°, μ¬μ©μμκ² λ³΄μ¬μ§λ λΆλΆ
β¦
jsp
β¦
html
β’
Controller: HTTP μμ²μ μ²λ¦¬νκ³ , μ μ ν λͺ¨λΈμ νΈμΆνμ¬ λ°μ΄ν°λ₯Ό κ°μ Έμ€κ³ , μ μ ν λ·°λ₯Ό μ ννμ¬, λ°ννλ λΆλΆ
Spring MVC ꡬ쑰
Spring Web MVC ꡬμ±μμ
1.
Dispatcher Servlet:
β’
μΉ μ ν리μΌμ΄μ
μ λͺ¨λ ν΄λΌμ΄μΈνΈ μμ²μ λ°μλ€μ΄κ³ μ²λ¦¬νλ ν΅μ¬ μλΈλ¦Ώμ
λλ€.
2.
Handler Mapping:
β’
ν΄λΌμ΄μΈνΈ μμ²μ μ²λ¦¬ν νΈλ€λ¬(컨νΈλ‘€λ¬)λ₯Ό κ²°μ νκΈ° μν κ·μΉμ μ μν©λλ€.
3.
Handler Adapter:
β’
μ νλ νΈλ€λ¬(컨νΈλ‘€λ¬)κ° μ€μ μμ²μ μ²λ¦¬νλ λ°©λ²μ κ²°μ νκ³ μ€νν©λλ€.
4.
View Resolver:
β’
νΈλ€λ¬(컨νΈλ‘€λ¬)μμ μ νλ λ·° μ΄λ¦μ λ·°λ‘ λ³ννκ³ μμ±νμ¬ ν΄λΌμ΄μΈνΈμ λ°νν©λλ€.
5.
Controller:
β’
ν΄λΌμ΄μΈνΈ μμ²μ λ°μλ€μ΄κ³ μ²λ¦¬νλ λΉμ¦λμ€ λ‘μ§μ ν¬ν¨νλ μ»΄ν¬λνΈμ
λλ€.
6.
Model:
β’
컨νΈλ‘€λ¬κ° μμ±ν λ°μ΄ν°λ₯Ό μ μ₯νκ³ λ·°μ μ λ¬νλ κ°μ²΄μ
λλ€.
7.
View:
β’
λ·° ν
νλ¦Ώ(μ: JSP, Thymeleaf)μ μ¬μ©νμ¬ λͺ¨λΈ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ€μ μλ΅(HTML νμ΄μ§)μ μμ±νλ μ»΄ν¬λνΈμ
λλ€.
8.
Service:
β’
λΉμ¦λμ€ λ‘μ§μ ꡬννκ³ μ 곡νλ μλΉμ€ λ μ΄μ΄μ μ»΄ν¬λνΈμ
λλ€.
9.
Repository:
β’
λ°μ΄ν°λ² μ΄μ€μ μνΈμμ©νλ λ°μ΄ν° μ‘μΈμ€ λ μ΄μ΄μ μ»΄ν¬λνΈμ
λλ€. λ°μ΄ν°λ² μ΄μ€ μ°λ λ° λ°μ΄ν° κ΄λ¦¬λ₯Ό λ΄λΉν©λλ€.
MVC ν¨ν΄ λμ μμ
1.
ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²μ νλ©΄, Front controllerμΈ DispatcherServlet ν΄λμ€κ° μμ²μ λ°λλ€.
2.
DispatcherServletμ νλ‘μ νΈ νμΌ λ΄μ servlet-context.xml νμΌμ @Controller μΈμλ₯Ό ν΅ν΄ λ±λ‘ν μμ² μμ 컨νΈλ‘€λ¬λ₯Ό μ°Ύμ λ©ν(mapping)λ 컨νΈλ‘€λ¬κ° μ‘΄μ¬νλ©΄ @RequestMappingμ ν΅ν΄ μμ²μ μ²λ¦¬ν λ©μλλ‘ μ΄λνλ€.
3.
컨νΈλ‘€λ¬λ ν΄λΉ μμ²μ μ²λ¦¬ν Service λ₯Ό λ°μ λΉμ¦λμ€ λ‘μ§μ μλΉμ€μκ² μμνλ€.
4.
Service λ μμ²μ νμν μμ
μ μννκ³ , μμ²μ λν΄ DBμ μ κ·Όν΄μΌνλ€λ©΄ DAOμ μμ²νμ¬ μ²λ¦¬λ₯Ό μμνλ€.
5.
DAOλ DBμ 보λ₯Ό DTOλ₯Ό ν΅ν΄ λ°μ μλΉμ€μκ² μ λ¬νλ€.
6.
μλΉμ€λ μ λ¬λ°μ λ°μ΄ν°λ₯Ό 컨νΈλ‘€λ¬μκ² μ λ¬νλ€.
7.
컨νΈλ‘€λ¬λ Model(λͺ¨λΈ) κ°μ²΄μκ² μμ²μ λ§λ View(λ·°) μ 보λ₯Ό λ΄μ DispatcherServletμκ² μ μ‘νλ€.
8.
DispatcherServletμ ViewResolverμκ² μ λ¬λ°μ View μ 보λ₯Ό μ λ¬νλ€.
9.
ViewResolverλ μλ΅ν Viewμ λν JSPλ₯Ό μ°Ύμ DispatcherServletμκ² μ λ¬νλ€.
10.
DispatcherServletμ μλ΅ν λ·°μ λ λλ§λ₯Ό μ§μνκ³ λ·°λ λ‘μ§μ μ²λ¦¬νλ€.
11.
DispatcherServletμ ν΄λΌμ΄μΈνΈμκ² λ λλ§λ λ·°λ₯Ό μλ΅νλ©° μμ²μ λ§μΉλ€.
Front Controller λμμΈ ν¨ν΄
μΉ μ ν리μΌμ΄μ
μ μ§μ
μ μ νλλ‘ ν΅μΌνκ³ , μμ²μ μ€μ μ§μ€μ μΌλ‘ μ²λ¦¬ν¨μΌλ‘μ¨ μ ν리μΌμ΄μ
μ ꡬ쑰μ νλ¦μ λ¨μννλ λμμΈ ν¨ν΄
DispatcherServlet κ³Ό Front Controller
Spring Frameworkμ DispatcherServletμ Front Controller ν¨ν΄μ ꡬννλ λνμ μΈ μμ
λλ€. DispatcherServlet λ λͺ¨λ ν΄λΌμ΄μΈνΈ μμ²μ λ°μλ€μ΄κ³ , μ μ ν νΈλ€λ¬(컨νΈλ‘€λ¬)λ₯Ό μ ννμ¬ μμ²μ μ²λ¦¬νλ©°, λ·°(View)λ₯Ό λ λλ§νμ¬ μλ΅μ μμ±ν©λλ€.






