์๋์ Spring MVC์ DispatcherServlet์ ๋ณด๊ณ ์ฃผ๊ด์ ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค.
๐ก ์คํ๋ง ํ๋ ์์ํฌ์ ํต์ฌ ์ฒ ํ
Spring์ OCP ์์น(Open-Closed Principle) ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋จ
โ
ํ์ฅ์๋ ์ด๋ ค ์๊ณ , ๋ณ๊ฒฝ์๋ ๋ซํ ์๋ค
์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ค์ํ ํ์ ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํจ:
- ๐น Spring JDBC
- ๐น Spring MVC
- ๐น Spring AOP
- ๐น Spring ORM
๐ Spring MVC์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
๊ธฐ์กด ์๋ธ๋ฆฟ ๊ธฐ๋ฐ ์น ๊ฐ๋ฐ์ ๋ฌธ์ ์ ๋ค:
- โ ํ
์คํธ ์ด๋ ค์
- โ ํ์ฅ์ฑ ๋ถ์กฑ
- โ ์ค๋ณต๋ ์ฝ๋
- โ ์ ์ง๋ณด์ ์ด๋ ค์
- โ ๋๋ฒ๊น
๋ณต์ก
โก ์ด๋ฐ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด Spring MVC๊ฐ ๋ฑ์ฅ
๐งฑ ๊ธฐ์กด ์๋ธ๋ฆฟ ๊ตฌ์กฐ์ ๋ฌธ์
์๋๋...
- ํ๋์ ์๋ธ๋ฆฟ์์:
- ์น ์์ฒญ ์ฒ๋ฆฌ
- ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ
- ๋ทฐ ์์ฑ ๋ฐ ์๋ต
โก ๋ชจ๋ ์ฑ
์์ด ํ ํด๋์ค์ ์ง์ค๋จ โ ์ ์ง๋ณด์ ์ด๋ ค์
โ
ํด๊ฒฐ์ฑ
: MVC ๊ตฌ์กฐ ๋ถ๋ฆฌ
- ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ณ๋๋ก ๋ถ๋ฆฌ
- ์๋ธ๋ฆฟ์ ๋จ์ํ ์์ฒญ์ ์ ๋ฌํ๊ณ ์๋ต์ ์์ ํ๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ์ญํ ๋ง ์ํ
๐งญ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ = DispatcherServlet
โ
DispatcherServlet
= Dispatch(๋ณด๋ด๋ค) + Servlet(์น ์์ฒญ/์๋ต ์ฒ๋ฆฌ)
= ์์ฒญ์ ๋ฐ์ ๋ค์ํ ์ฒ๋ฆฌ ๊ณผ์ ์ ์์ํ๋ ์ค์ ์ปจํธ๋กค๋ฌ
๐ Spring MVC์ ์์ฒญ ์ฒ๋ฆฌ ํ๋ฆ
ํด๋ผ์ด์ธํธ โ DispatcherServlet โ HandlerMapping
โ HandlerAdapter โ Controller โ Model + View
โ ViewResolver โ View ๋ ๋๋ง โ ํด๋ผ์ด์ธํธ
๐น ๊ฐ ๋จ๊ณ ์ค๋ช
- DispatcherServlet: HTTP ์์ฒญ ์์
- HandlerMapping: ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ Controller ์กฐํ
- HandlerAdapter: Controller ์คํ์ ์ํ ์ด๋ํฐ ์ ํ
- Controller: ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ, Model๊ณผ View ์ด๋ฆ ๋ฐํ
- ViewResolver: View ์ด๋ฆ์ ์ค์ View๋ก ๋ณํ
- View: Model ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTML ๋ ๋๋ง
- DispatcherServlet: ์ต์ข
์๋ต ๋ฐํ
๐ง DispatcherServlet์ ํต์ฌ ์ญํ
| ์ญํ | ์ค๋ช
|
|---|
| ์์ฒญ ์์ | ํด๋ผ์ด์ธํธ์ HTTP ์์ฒญ์ ์์ |
| ๊ณตํต ์์
์ํ | ์ธ์ฆ, ๋ก๊น
, ์ธ์ฝ๋ฉ ๋ฑ |
| ์ปจํธ๋กค๋ฌ ์์ | ์์ฒญ์ ์ปจํธ๋กค๋ฌ์ ์์ |
| ๋ทฐ ์ ํ ๋ฐ ๋ ๋๋ง | ViewResolver์ View๋ฅผ ํตํด ๊ฒฐ๊ณผ ๋ ๋๋ง |
โจ ๋ง๋ฌด๋ฆฌ
- DispatcherServlet์ Spring MVC์ ํต์ฌ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ
- ์ญํ ๋ถ๋ฆฌ๋ฅผ ํตํด ์ ์ง๋ณด์์ฑ๊ณผ ํ
์คํธ ์ฉ์ด์ฑ ํฅ์
- ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ฐํ ์น ์ํคํ
์ฒ ์ค๊ณ์ ๊ธฐ์ฌ