๐ 'DispatcherServlet '์ ๋ํด์ ์์๋ณด์!
๐ DispatcherServlet ์ ์
ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ๋ผ๊ณ ๋ ํ๋ค.
- HTTP ํ๋กํ ์ฝ๋ก ๋ค์ด์จ๋ ๋ชจ๋ ์์ฒญ์ ๋จผ์ ๋ฐ์์ ์ ํฉํ ์ปจํธ๋กค๋ฌ์ ์์(Delegate request)ํ๋ ์ญํ ์ ํ๋ค.
- ํด๋ผ์ด์ธํธ๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด์๋ง ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
- ๋ทฐ(View)๋ฅผ ๋ ๋๋งํ๋ ์ญํ
- ๋ชจ๋ ์์ฒญ์ด ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ์ฒ๋ฆฌ๋๋ฏ๋ก, ๊ณตํต ๋ก์ง์ ์ผ๊ด๋๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
๐ ์คํ๋ง ํ๋ ์์ํฌ์์์ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ
- DispatcherServlet : ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ก์, ๋ชจ๋ ์น ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๋ฉด ํด๋น ์์ฒญ์ ๋จผ์
DispatcherServlet์ ๋์ฐฉํ๊ณ , DispatcherServlet์ ์์ฒญ์ ๋ถ์ํ์ฌ ์ ์ ํ ํธ๋ค๋ฌ(์ปจํธ๋กค๋ฌ)์ ์์ฒญ์ ์ ๋ฌํ๋ค.
- ํธ๋ค๋ฌ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ํ, ๋ค์
DispatcherServlet์ ์๋ต์ ๋ฐํํ๋ฉด, DispatcherServlet์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ ํ ๋ทฐ(View)๋ก ์ ๋ฌํ์ฌ ์๋ต์ ์์ฑํ๋ค.
ํ๋ก ํธ ์ปจํธ๋กค๋ฌ์ ๋์ ํ๋ฆ
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ธ๋ค.
- ํ๋ก ํธ ์ปจํธ๋กค๋ฌ(
DispatcherServlet)๊ฐ ๋ชจ๋ ์์ฒญ์ ๋ฐ์ ์ฒ๋ฆฌํ๋ค.
- ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ ์์ฒญ URL, HTTP ๋ฉ์๋ ๋ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฒญ์ ๋ถ์ํ๊ณ , ์ ์ ํ ์ปจํธ๋กค๋ฌ๋ก ์์ฒญ์ ์ ๋ฌํ๋ค.
- ์ปจํธ๋กค๋ฌ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ธ์ ๋ด๊ณ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ก ๋ฐํํ๋ค.
- ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ ์ ์ ํ ๋ทฐ(HTML, JSP ๋ฑ)๋ฅผ ์ฐพ์ ์๋ต์ ์์ฑํ๊ณ , ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํ๋ค.
์์ฝ
ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ชจ๋ ์์ฒญ์ ํ ๊ณณ์์ ์ฒ๋ฆฌํ๊ณ ๊ณตํต ๋ก์ง์ ๊ด๋ฆฌํ๋ ์ค์ํ ํจํด์
๋๋ค. ์คํ๋ง MVC์์๋ DispatcherServlet์ด ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ถ์ํ๊ณ ์ ์ ํ ์ปจํธ๋กค๋ฌ๋ก ์์ฒญ์ ์ ๋ฌํ์ฌ ์๋ต์ ์์ฑํ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.