MVC ํจํด์
๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ Model
, ์ฌ์ฉ์์ ๋ณด์ฌ์ง๋ View
, Model๊ณผ View๋ฅผ ๊ฐ ๋ช
๋ น์ ์ ๋ฌํ๋ Controller
๋ก ๋ถ๋ฆฌํ์ฌ
์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๋์์ธ ํจํด์ด๋ค.
ํด๋น ๋์์ธ ํจํด์ ์ํํธ์จ์ด์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ํ๋ฉด์ ๊ตฌ๋ถํ๋๋ฐ ์ค์ ์ ๋์ด
๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์
๋ฌด ๋ถ๋ฆฌ์ ํฅ์๋ ์ ์ง ๋ณด์(๊ด๋ฆฌ)๋ฅผ ์ง์ํ๋ค.
๊ทธ๋ ๋ค๋ฉด Spring MVC๋?
Spring MVC
๋ ์คํ๋ง์์ ์ ๊ณตํ๋ ์๋ธ๋ฆฟ ๊ธฐ๋ฐ ์น ๊ฐ๋ฐ ๋ชจ๋์ด๋ค.
์ด๋ Spring์์ ๋ณด๋ค ํธํ๊ฒ MVC ํจํด์ผ๋ก ๊ฐ๋ฐํ ์ ์๋๋ก ์ง์ํ๋ ๋ชจ๋์ด๋ค.
์๋ ์ด๋ฏธ์ง๋ Spring MVC์ ๋์ flow๋ฅผ ๋ํ๋ธ๋ค.
Spring MVC๋ฅผ ์ฌ์ฉํ๋ฉด, ๊ฐ๋ฐ์๋ ๋ณด๋ผ์ ์์ญ๊ณผ (๋๋๋ก)์ฐ๋์ ์์ญ๋ง ๊ฐ๋ฐํด์ฃผ๋ฉด๋๋ค.
๊ทธ ์ธ์ ์์ญ์ Spring MVC๊ฐ ์์์ ์ง์ํ๋ค..๐
์ด๋ฏธ์ง ์ถ์ฒ: ํ๋์ ์ ์ ์ฐ์ด๋๊ฐ๋ฉฐ, [๋ถ์คํธ์ฝ์ค ์น ํ๋ก๊ทธ๋๋ฐ]์คํ๋ง MVC
์ค์ง์ด๊ฒ์์๋ ํ๋ก ํธ๋งจ์ด ์๊ณ , ์คํ๋ง์๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๊ฐ ์๋ค..!
๐ฆ ์ค์ง์ด๊ฒ์ ๊ณผ๋ชฐ์
์๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ
๋ฅผ ๋ณด๊ณ ํ๋ก ํธ ๋งจ
์ ๋ ์ฌ๋ ธ๋ค..
HandlerMapping
์ผ๋ก ํด๋น ์์ฒญ ๋ก์ง ์ฒ๋ฆฌ์ ์ ํฉํ (์๋ธ) ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ์ ๋งคํํ๋ค. HandlerAdapter
๋ก ๋งคํ๋ (์๋ธ) ์ปจํธ๋กค๋ฌ๋ฅผ ์คํ์ํจ๋ค.ModelAndView
)์ ๋ฆฌํดํ๋ค.ViewResolver
๋ก ํด๋น viewName์ ๋ทฐ๋ฅผ ์ฐพ๊ณ ์ ๊น๐, Spring MVC์ ์ฃผ์ ๊ตฌ์ฑ ์์
๊ตฌ์ฑ ์์ | ๊ธฐ๋ฅ |
---|---|
Dispatcher Servlet | ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋งจ ์๋จ์์ ๋ฐ์ controller์๊ฒ ์ ๋ฌ, ๋ฆฌํดํ ๊ฒฐ๊ณผ๋ฅผ view์๊ฒ ์ ๋ฌํ๋ servlet ๊ฐ์ฒด (ํ๋ก ํธ ์ปจํธ๋กค๋ฌ) |
HandlerMapping | url๊ณผ ์์ฒญ ์ ๋ณด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ค ํธ๋ค๋ฌ ๊ฐ์ฒด(controller)๋ฅผ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๋ ๋ก์ง์ ๊ฐ์ฒด, Dispatcher Servlet์ ํ๋ ์ด์์ HandlerMapping์ ๊ฐ์ง ์ ์์ |
HandlerAdapter | HandlerMapping์ ํตํด ์ฐพ์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ง์ ์คํํ๋ ๊ธฐ๋ฅ์ ์ํ, controller์ ๋ฆฌํด๊ฐ์ Dispatcher Servlet์ ์ ๋ฌ |
Controller | ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ฒ๋ฆฌ, ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ Dispatcher Servlet์ ์ ๋ฌ |
ModelAndView | controller๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ ์ ๋ณด(Model) ๋ฐ ๋ทฐ ์ ํ์ ํ์ํ ์ ๋ณด๋ฅผ ๋ณด์ ํ ๊ฐ์ฒด |
ViewResolver | controller๊ฐ ๋ฆฌํดํ ๋ทฐ ์ด๋ฆ(viewName)์ ๊ธฐ๋ฐ์ผ๋ก controller ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ ๋ทฐ ๊ฒฐ์ |
View | controller์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ํ๋ฉด ์์ฑ |
์ฐธ๊ณ : ํ๋์ ์ ์ ์ฐ์ด๋๊ฐ๋ฉฐ, [๋ถ์คํธ์ฝ์ค ์น ํ๋ก๊ทธ๋๋ฐ]์คํ๋ง MVC
ํ..ํ์ด ์..
ํธ๋ค๋ฌ์ ๊ณตํต ๋ก์ง์ด ์ค๋ณต
๋จ๋ฉํฐ์ค๋ ๋ฉ
์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํด์ผํจ์ถ์ฒ: [10๋ถ ํ ์ฝํก] ๐ถ ์ฝ๊ธฐ์ Servlet vs Spring, ๊ตฌ๋ฐํ๋ง ๊ตฌ๋ฐํ๋ง, Front Controller ํจํด
โญ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋จ์์ ์ฒ๋ฆฌ(๊ณตํต ๋ก์ง)ํ๊ณ , ์์ฒญ์ ๋ง๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋งคํ, ์ด๊ด์์ ๊ฐ์ ์ญํ ์ ํ๋ servlet ๊ฐ์ฒด
โญ ํ๋์ servlet์ผ๋ก ๋ชจ๋ ์์ฒญ์ ๋ฐ์ =Dispatcher Servlet
(Dispatcher Servlet์ผ๋ก ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ตฌํ)
ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ํจํด์ด๋?
ํ๋์ servlet์ผ๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์, ๊ณตํต ๋ก์ง์ ํด๋นํ๋ ๋ถ๋ถ์ ์ฒ๋ฆฌํ๊ณ ์์ฒญ์ ๋ง๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋งคํํด์ฃผ๋๋ก ์๋จ์ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ฅผ ์ค๊ณํ๋ ๋์์ธ ํจํด
์ค๋์ ์ฌ๊ธฐ๊น์ง,
(ํฌ์คํ ํ๊ณ ๋ณด๋ ๋๋ง ์์๋ณผ ์ ์๊ฒ ์๋๋ผ๋ผ ์ ์๋ค...ใ ;;; ๋ณต์ต์ฉ TIL์ด๋๊น ๊ป๊ป)
๊ธ์ ๋๋ฌด ์ฌ๋ฐ๊ฒ ์ ์ฐ์ จ๋ค์.. ์ ์ฝ์์ต๋๋ค!!