๐Ÿ’ป ์ฝ”๋”ฉ ์ผ๊ธฐ : [Spring] 'DispatcherServlet(ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ)' ํŽธ

ybkยท2024๋…„ 11์›” 16์ผ

spring

๋ชฉ๋ก ๋ณด๊ธฐ
53/55
post-thumbnail

๐Ÿ”” 'DispatcherServlet '์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!


๐Ÿ’Ÿ DispatcherServlet ์ •์˜

  • ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ ๋ผ๊ณ ๋„ ํ•œ๋‹ค.
  • HTTP ํ”„๋กœํ† ์ฝœ๋กœ ๋“ค์–ด์˜จ๋А ๋ชจ๋“  ์š”์ฒญ์„ ๋จผ์ € ๋ฐ›์•„์„œ ์ ํ•ฉํ•œ ์ปจํŠธ๋กค๋Ÿฌ์— ์œ„์ž„(Delegate request)ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๋Š” ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ทฐ(View)๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ์—ญํ• 
  • ๋ชจ๋“  ์š”์ฒญ์ด ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ, ๊ณตํ†ต ๋กœ์ง์„ ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’Ÿ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ์˜ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ

  • DispatcherServlet : ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ์„œ, ๋ชจ๋“  ์›น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ํ•ด๋‹น ์š”์ฒญ์€ ๋จผ์ € DispatcherServlet์— ๋„์ฐฉํ•˜๊ณ , DispatcherServlet์€ ์š”์ฒญ์„ ๋ถ„์„ํ•˜์—ฌ ์ ์ ˆํ•œ ํ•ธ๋“ค๋Ÿฌ(์ปจํŠธ๋กค๋Ÿฌ)์— ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค.
  • ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„, ๋‹ค์‹œ DispatcherServlet์— ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด, DispatcherServlet์€ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ ˆํ•œ ๋ทฐ(View)๋กœ ์ „๋‹ฌํ•˜์—ฌ ์‘๋‹ต์„ ์ƒ์„ฑํ•œ๋‹ค.

ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋™์ž‘ ํ๋ฆ„

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
  2. ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ(DispatcherServlet)๊ฐ€ ๋ชจ๋“  ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  3. ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์š”์ฒญ URL, HTTP ๋ฉ”์„œ๋“œ ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์ฒญ์„ ๋ถ„์„ํ•˜๊ณ , ์ ์ ˆํ•œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค.
  4. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ธ์— ๋‹ด๊ณ  ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  5. ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ ์ ˆํ•œ ๋ทฐ(HTML, JSP ๋“ฑ)๋ฅผ ์ฐพ์•„ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์š”์•ฝ

ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ชจ๋“  ์š”์ฒญ์„ ํ•œ ๊ณณ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ณตํ†ต ๋กœ์ง์„ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์š”ํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง MVC์—์„œ๋Š” DispatcherServlet์ด ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ถ„์„ํ•˜๊ณ  ์ ์ ˆํ•œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜์—ฌ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

profile
๊ฐœ๋ฐœ์ž ์ค€๋น„์ƒ~

0๊ฐœ์˜ ๋Œ“๊ธ€