๐ก๋์ ์ธ ์นํ์ด์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋๊ตฌ / ํํ ๋งํ๋ UI (SSR์ ์ฌ์ฉ)
HTML ๋ฌธ์ ์ค ๋์ ์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ ๋ถ๋ถ๋ง ์๋ฐ ์ฝ๋๋ก ๋ฃ์ ์ ์์ด ๋ ํธ๋ฆฌํ๋ค
์๋ฅผ ๋ค์ด ์นํ์ด์ง๊ฐ ์์ ๋
ํน์ ๊ธ์ ์กฐํํ ๋, ๋ณํ๋ ๋ถ๋ถ๋ง ๋ณํ๊ณ ๋๋จธ์ง ์์๋ค์ ๊ณ ์ ์
๋ณํด์ผ ํ๋ ๊ณณ๋ง!! ์ฝ๋๋ก ๋ฃ์ด์ค๋ค
๐ก์๋ธ๋ฆฟ๊ณผ jsp๋ง์ผ๋ก ๋ง๋ค๋ฉด ๋น์ง๋์ค ๋ก์ง๊ณผ ๋ทฐ ๋ ๋๋ง๊น์ง ์ฒ๋ฆฌํ๊ธฐ๊ฐ ๊ตฌ์กฐ๊ฐ ๋ ๋ณต์กํจ (์ ์ง๋ณด์ ํ๋ฆ)
โ ๋ฐ๋ผ์ mvc (๋ชจ๋ธ ๋ทฐ ์ปจํธ๋กค๋ฌ) ํจํด์ ์ฌ์ฉํ๋ค
| Servlet | JSP |
|---|---|
![]() | ![]() |
| ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๋ก์ง๊ณผ, ๋น์ฆ๋์ค ๋ก์ง์ด ํ๋์ Servlet ์์ ๋ค ์์ฌ ๋ค์ด์์ | ์ฐ๋ฆฌ๊ฐ ๋ง์ด ๋ณธ html์ฝ๋๊ฐ ์๋ฐ์ฝ๋๋ ๊ฐ์ด ์์ โ ์๋ธ๋ฆฟ์์ ๋ทฐ๋ง ๋ถ๋ฆฌ๋๊ฒ |
| ๋ค ์์ | ๋ทฐ๋ ๋ถ๋ฆฌ๋์์ง๋ง ๋ก์ง์ด ์์ |
๐กํ๋์ jsp๋ servlet์ผ๋ก ์ฒ๋ฆฌํ๋๊ฑธ Model , View , Controller ๋ก ๋ถ๋ฆฌ

Layered architecture ๊ตฌ์กฐ ์ด์ฉํด ์ญํ ์ด ๋ ์ธ๋ถํ ๋๋ค!Controller Layer โ HTTP Request๋ฅผ ์ ๋ฌ๋ฐ์ ํ๋ผ๋ฏธํฐ ๊ฒ์ฆService Layer โ ๋น์ฆ๋์ค ๋ก์ง ์คํ Repository Layer โ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ํธ์์ฉ
๊ธฐ๋ฅ๋ณ๋ก ์๋ธ๋ฆฟ์ด ๊ณ์ ํ์ํจ..
*๊ณตํต๊ธฐ๋ฅ?
๋ชจ๋ ์ปจํธ๋กค๋ฌ์์ ๊ณตํต์ผ๋ก ์ ์ฉ๋๋ ๊ธฐ๋ฅ (log ์ถ๋ ฅ, ์ธ๊ฐ ๋ฑ)
๐ก์ปจํธ๋กค๋ฌ ํธ์ถ ์ ์ ๊ณตํต๊ธฐ๋ฅ์ ํ๋์ ์๋ธ๋ฆฟ์์ ์ฒ๋ฆฌํด์ฃผ๋ ํจํด
โ ์ ๊ตฌ๊ฐ ํ๋๋ค! ๊ณตํต๊ธฐ๋ฅ์ ์๋ธ๋ฆฟ์ ๊ผฌ์ฅ ์ง๋๊ฐ์ผํด
๐ก ๋ค์ํ ์ปจํธ๋กค๋ฌ ํธ๋ค๋ฌ๋ฅผ ์ ์ฐํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋์
๐ Spring MVC ํจํด ๊ฐ์
โถ Servlet๋ง ์ฌ์ฉ - ๋น์ฆ๋์ค ๋ก์ง, View๊ฐ ๋ถ๋ฆฌ๋์ง ์์
โท JSP๋ง ์ฌ์ฉ - View๋ ๋ถ๋ฆฌํ์์ผ๋ ๋ก์ง์ด Jsp์ ํฌํจ
โธ MVC ํจํด ์ฌ์ฉ - ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ๋ฅผ ๋ถ๋ฆฌํ์์ผ๋ ๊ณตํต๊ธฐ๋ฅ์์๋ ์ฝ๋๋ฅผ ์ค๋ณต์ ๋ ฅํด์ผํจ
โน ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ํจํด - ํ๋์ ์ ๊ตฌ๋ฅผ ๋ง๋ค์ด ๊ณตํต๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ์ง๋ง ๋ชจ๋ ํธ๋ค๋ฌ์ ์๋ต์ ์ด๊ฒ์ ๋ง๊ฒ ๋ฐ๊ฟ์ผํจ
โบ ์ด๋ํฐ ์ปจํธ๋กค๋ฌ ํจํด - ํธ๋ค๋ฌ์ ์๋ต์ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ์ ๋ง๊ฒ ์ฐ๊ฒฐํด์ค๋ค

๐ Front Controller (๋์คํจ์ณ ์๋ธ๋ฆฟ)
๐ Handler Adapter
๐ Handler
๋๋ถ๋ถ์ ๊ธฐ๋ฅ๋ค์ด ์ธํฐํ์ด์ค๋ก ๋ง๋ค์ด์ ธ ์๊ธฐ ๋๋ฌธ์
DispatcherServlet์ฝ๋์ ๋ณ๊ฒฝ์์ด ๊ธฐ๋ฅ ๋ณ๊ฒฝ์ด๋ ํ์ฅ์ด ๊ฐ๋ฅํ๋ค
Controller์๋ ์๊ด์๋ค
@Component= "๋ ์ด๊ฑฐ ๋น์ผ๋ก ๋ฑ๋กํด!"
@Service,@Repository,@Controller๋ฑ = "์ด๊ฑฐ ๋น์ธ๋ฐ, ์ญํ ์ ์ด๊ฑฐ์ผ!"
Spring Bean์ผ๋ก ๋ฑ๋กํด๋๋คSpring Bean์ ์ฐพ์์Spring Bean์ ๋งคํ๋ Controller๋ฅผ ์ฐพ์ ์คํํด์ค๋ค.์คํ๋ง์์ ์ฌ์ฉ์๊ฐ /class/1 ๊ฐ์ ์์ฒญ์ ๋ณด๋ด๋ฉด,
์ค์์์ ๋ชจ๋ ์์ฒญ์ ๋ฐ๋ DispatcherServlet์ด ์ด๊ฑธ ๋ฐ์.๊ทผ๋ฐ DispatcherServlet ํผ์์ ์ด๋ ๊ฒ ์๊ฐํจ
"์ด URL์ ๋๊ตฌํํ ๋งก๊ธฐ์ง...? ๋๊ตฌ ๋ฉ์๋ ์คํํด์ผ ํ์ง...?"
HandlerMapping URL์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค Bean์ ์ด๋ค ๋ฉ์๋๋ฅผ ์คํํ ์ง ์ฐพ์
HandlerAdapter ์ฐพ์ Bean์ ์ค์ ๋ก ์ด๋ป๊ฒ ์คํํ ์ง ๋ฐฉ๋ฒ์ ์ ๊ณต
| ์ฐ์ ์์ | Handler Mapping | Handler Adapter | ์๋ฏธ |
|---|---|---|---|
| 1๏ธโฃ | RequestMappingHandlerMapping - Annotation ๊ธฐ๋ฐ Controller์ @RequestMapping์ ์ฌ์ฉ | RequestMappingHandlerAdapter - Annotation ๊ธฐ๋ฐ Controller์ @RequestMapping์ ์ฌ์ฉ | ์ง๊ธ ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ๋ฐฉ์ (@RequestMapping, @GetMapping ๋ฑ) |
| 2๏ธโฃ | BeanNameUrlHandlerMapping - Spring Bean Name์ผ๋ก HandlerMapping | HttpRequestHandlerAdapter - HttpRequestHandler ์ฒ๋ฆฌ | ํน์ URL๊ณผ Bean ์ด๋ฆ์ ๋งคํํ๊ฑฐ๋, HttpRequestHandler ๊ตฌํ์ฒด ์ฌ์ฉ ์ |
| 3๏ธโฃ | - | SimpleControllerHandlerAdapter - Controller Interface ์ฒ๋ฆฌ | ๊ณผ๊ฑฐ์ Controller ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ๋ฐฉ์ |