• Request
    • ํ•ด๋‹น ์š”์ฒญ์„ ๋‚ด์žฅ ํ†ฐ์บฃ์ด ๋ฐ›๋Š”๋‹ค.
    • ๋™์  ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์š”์ฒญ์ธ ๊ฒฝ์šฐ, ํ†ฐ์บฃ์€ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋“ฑ๋ก๋œ ๋””์ŠคํŒจ์ฒ˜ ์„œ๋ธ”๋ฆฟ์—๊ฒŒ ํ•ด๋‹น ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.
    • ์ด๋•Œ, ์š”์ฒญ ๋ฐ ์‘๋‹ต ๊ฐ์ฒด๋ฅผ ๊ฐ™์ด ๋ณด๋‚ธ๋‹ค.
  • Filter
    • Dispatcher Servlet์—๊ฒŒ ์š”์ฒญ์ด ๋“ค์–ด๊ฐ€๊ธฐ ์ „๊ณผ ํ›„์— ํ•„ํ„ฐ๋ฅผ ๊ฑฐ์นœ๋‹ค.
    • Filter๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ธ์ฆ, ๊ถŒํ•œ ์ฒดํฌ๋ฅผ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
    • ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹Œ, J2EE ํ‘œ์ค€ ์ŠคํŽ™ ๊ธฐ๋Šฅ์ด๋‹ค.

    J2EE : ์ž๋ฐ” ๊ธฐ์ˆ ๋กœ ๊ธฐ์—…ํ™˜๊ฒฝ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ์ŠคํŽ™๋“ค์„ ๋ชจ์•„๋‘” ์ŠคํŽ™ ์ง‘ํ•ฉ

  • Dispatcher Servlet
    • ํ†ฐ์บฃ์œผ๋กœ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ ํ•ฉํ•œ ํ•ธ๋“ค๋Ÿฌ์—๊ฒŒ ์š”์ฒญ์„ ์œ„์ž„ํ•˜๊ณ , ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค.
  • HandlerMapping
    • ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ ์ ˆํ•œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฐพ๋Š”๋‹ค.
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ๋™ ๊ณผ์ •์—์„œ @Controller, @RestController ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ํด๋ž˜์Šค์— @RequestMapping ํ˜น์€ ์œ ์‚ฌํ•œ ์–ด๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ๋ฉ”์†Œ๋“œ๋“ค์ด ํ•ธ๋“ค๋Ÿฌ๋กœ ๋“ฑ๋ก์ด ๋œ๋‹ค.
    • HandlerMapping์€ ๊ทธ๋ ‡๊ฒŒ ๋“ฑ๋ก๋œ ํ•ธ๋“ค๋Ÿฌ, ์ฆ‰ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค.
  • HandlerAdapter
    • HanderMapping์—์„œ ์ ์ ˆํ•œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฐพ์•„ ๋ฐ˜ํ™˜์„ ํ•˜๋ฉด, Dispatcher Servlet์—์„œ๋Š” HandlerAdapter์—๊ฒŒ ํ•ด๋‹น ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์œ„์ž„ํ•œ๋‹ค.
    • ์œ„์ž„ํ•˜๊ธฐ ์ „, HandlerInterceptor์— ๋“ฑ๋ก๋œ ์ธํ„ฐ์…‰ํ„ฐ ์ฒด์ธ์˜ preHandle ๋ฉ”์†Œ๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
    • ์ •์ƒ์ ์œผ๋กœ ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด argument resolver๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
      • Argument resolver์€ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์†Œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์žˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ณด๊ณ  ์ฒ˜๋ฆฌํ•œ๋‹ค.
      • ๋Œ€ํ‘œ์ ์œผ๋กœ @RequestBody, @PathVariable, @RequestParam ๋“ฑ์ด ์žˆ๋‹ค.
      • ์ด๋•Œ, HttpMessageConverter๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์†Œ๋“œ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ฐ›์•„ Dispatcher Servlet๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
      • ๋ฐ˜ํ™˜๊ฐ’์ด String์ธ ๊ฒฝ์šฐ ๋ทฐ์˜ ์ด๋ฆ„์œผ๋กœ ํ•ด์„ํ•œ๋‹ค.
      • ๋ฐ˜ํ™˜๊ฐ’์ด ๊ฐ์ฒด์ธ ๊ฒฝ์šฐ ์ ์ ˆํ•œ HttpMessageConverter๋ฅผ ์‚ฌ์šฉํ•ด์„œ JSON ํ˜น์€ XML๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ViewResolver
    • Dispatcher Servlet๋Š” HandlerAdapter๋กœ ๋ฐ›์€ ๋ทฐ ์ด๋ฆ„์„ ViewResolver๋กœ ์ „๋‹ฌํ•œ๋‹ค.
    • ViewResolver์€ ๋ฐ›์€ ๋ทฐ ์ด๋ฆ„์„ ํ†ตํ•ด ๋ทฐ๋ฅผ ๋žœ๋”๋งํ•œ๋‹ค.
    • ์ด๋•Œ, ์‚ฌ์šฉ๋œ Model ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ทฐ์— ์ „๋‹ฌํ•ด์„œ ์ตœ์ข… HTML์„ ๋ Œ๋”๋งํ•œ๋‹ค.
  • Response
    • Dispatcher Servlet์€ ํ†ฐ์บฃ์œผ๋กœ ๋ฐ›์€ ์‘๋‹ต ๊ฐ์ฒด์— ๋ทฐ ํ˜น์€ ํŠน์ • ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ํ†ฐ์บฃ์— ์ „๋‹ฌํ•œ๋‹ค.
    • ํ†ฐ์บฃ์„ ์ด๋ฅผ ๋ฐ›์•„ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌํ•œ๋‹ค.