Skip to content

Latest commit

ย 

History

History
43 lines (33 loc) ยท 2.64 KB

File metadata and controls

43 lines (33 loc) ยท 2.64 KB

Spring MVC ์ฒ˜๋ฆฌ ๊ณผ์ •


Spring MVC์˜ ํ•ต์‹ฌ์€ DispatcherServlet ์ด๋‹ค.

  1. ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•œ ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ๊ฐ€ ์‹คํ–‰๋œ๋‹ค (์„ค์ •๋˜์–ด์žˆ๋‹ค๋ฉด)
  2. ๋ชจ๋“  ์š”์ฒญ์€ DispatcherServlet์—๊ฒŒ ์ „๋‹ฌ๋œ๋‹ค.
  3. DispatcherServlet ์€ ๋ฐ›์€ ์š”์ฒญ์„ ๋ถ„์„ํ•œ๋‹ค. (Common Service)
    • Locale, Theme, Multipart


HandlerMapping์ด ๋ฐ˜ํ™˜ํ•˜๋Š” HandlerExecutionChain๊ฐ์ฒด

  1. DispatcherServlet ์€ HandlerMapping ์—๊ฒŒ ์œ„์ž„ํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  Handler (Controller) ๋ฅผ ์ฐพ๋Š”๋‹ค.
    • HandlerMapping ์€ ์š”์ฒญ URL์„ ๋ณด๊ณ  Handler๋ฅผ ์ฐพ์•„์„œ Handler ์˜ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ์ด๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์€ HandlerExecutionChainํƒ€์ž…์ด๋‹ค. (handler๊ณผ ์ธํ„ฐ์…‰ํ„ฐ ๊ด€๋ จ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.)
  2. DispatcherServlet ์€ ์ฐพ์•„๋‚ธ Handler ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” HandlerAdapter ๋ฅผ ์ฐพ๋Š”๋‹ค.
  3. ์ฐพ์•„๋‚ธ HandlerAdapter ๋ฅผ ์‚ฌ์šฉํ•ด์„œ Handler ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    • ์‹คํ–‰ ์ „์— ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ๋กœ ์‹คํ–‰ํ•ด์•ผํ•  ์ธํ„ฐ์…‰ํ„ฐ ๋ชฉ๋ก์„ ๊ฒฐ์ •ํ•˜๊ณ  ์‹คํ–‰์‹œํ‚จ๋‹ค.
    • Handler ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋˜ํ•œ ์‹คํ–‰ํ•œ๋‹ค.
    • Handler์˜ ๋ฆฌํ„ด๊ฐ’ : View(๋ทฐ์˜ ํŒŒ์ผ๋ช…), Model(๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌํ•œ ํ›„์˜ ๋ฐ์ดํ„ฐ)
  4. DispatcherServlet ์€ ViewResolver ์—๊ฒŒ View ์˜ ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜๊ณ  View ๊ฐ์ฒด๋ฅผ ์–ป๋Š”๋‹ค.
    • ๋ทฐ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ๋ทฐ์„ ์ฐพ๋Š” ๋‹จ๊ณ„
    • View Resolver ๋Š” ์ „๋žต ๊ฐ์ฒด์ด๋ฉฐ view name ๋ฟ ์•„๋‹ˆ๋ผ ํ—ค๋” ์ •๋ณด(accept)๋„ ์ „๋‹ฌ๋œ๋‹ค.
    • View Resolver ๋Š” ์ „๋‹ฌ๋œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ View ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.
  5. DispatcherServlet ์€ View ๊ฐ์ฒด์—๊ฒŒ Model ๊ณผ ํ•จ๊ป˜ ํ™”๋ฉด ํ‘œ์‹œ๋ฅผ ์˜๋ขฐํ•œ๋‹ค.
  6. View ๋Š” ํ•ด๋‹นํ•˜๋Š” ๋ทฐ๋ฅผ(ex. JSP, Thymleaf..) ํ˜ธ์ถœํ•˜๋ฉฐ, Model ๊ฐ์ฒด์—์„œ ํ™”๋ฉด ํ‘œ์‹œ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ํ™”๋ฉด ํ‘œ์‹œ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ์ฐพ์€ ๋ทฐ์— ๋ชจ๋ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋žœ๋”๋งํ•˜๊ณ  ์š”์ฒญ์˜ ์‘๋‹ต๊ฐ’์„ ์ƒ์„ฑํ•œ๋‹ค.
  7. DispatcherServlet ์€ View ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

DispatcherServlet์˜ doDispatch๋ฅผ ๋ณด๋ฉด try-catch๋ฌธ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์š”์ฒญ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋Š” DispatcherServlet๊ฐ€ catch๋ฅผ ํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.


์ข‹์€ MVC Flow ์ฐธ๊ณ ์ž๋ฃŒ