[Spring] Spring MVC๋ž€?

2021. 12. 20. 19:21ใ†Back-End ์ž‘์—…์‹ค/Spring Framework

728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š”? ์ฃผ๋‹ˆํ•˜๋ž‘ ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ Spring MVC๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

 

๋ฐ”๋กœ ์‹œ์ž‘ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 


 

๐Ÿš€ Spring MVC๋ž€?

 

Spring ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” Web Module๋กœ MVC๋Š” Model-View-Controller์˜ ์•ฝ์ž์ธ ๊ฒƒ์ด์—์š”.

  • Model์ด๋ž€? Deta Design์„ ๋‹ด๋‹น
    ์˜ˆ : ์ƒํ’ˆ ๋ชฉ๋ก, ์ฃผ๋ฌธ ๋‚ด์—ญ ๋“ฑ
  • View๋ž€? ์‹ค์ œ๋กœ ๋ Œ๋”๋ง๋˜์–ด ๋ณด์ด๋Š” Page ๋‹ด๋‹น
    ์˜ˆ: React, jsp ๋“ฑ
  • Controller๋ž€? ์ด์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ , ์‘๋‹ต์„ ์ฃผ๋Š” Logic ๋‹ด๋‹น
    ์˜ˆ: HTTP Method GET, POST ๋“ฑ์˜ URI Mapping

 

Spring MVC Module์„ ์‚ฌ์šฉํ•˜์—ฌ Back End Programming์˜ ๊ธฐ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์žก๋Š” ๊ฒƒ์ด์—์š”.

์ด ์นœ๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด WEB Server์— ํŠนํ™”๋˜์–ด ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“ˆ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•ด์•ผ ํ•  ์˜์—ญ์„ ๋” ์ ๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ณด๋‹ค ๋” ๊น”๋”ํ•˜๊ณ , ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

์š”์ฆ˜์€ MVC Model 2๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํ•œ ์–ธ๊ธ‰์ด ์—†๋‹ค๋ฉด MVC Model 2 ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

์ถœ์ฒ˜ : ๋ถ€์ŠคํŠธ์ฝ”์Šค( https://www.edwith.org/boostcourse-web/lecture/16762/ )

 

์ถœ์ฒ˜ : ๋ถ€์ŠคํŠธ์ฝ”์Šค(https://www.edwith.org/boostcourse-web/lecture/16762/)

์ „์ฒด ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด์—์š”.

Request(์š”์ฒญ) -> Front Controller -> Handler Mapping -> Handler Adapter -> Controller -> Business Logic(Service) -> Controller -> View Resolver -> Response(jsp, html, React ๋“ฑ)
๋ฐ˜์‘ํ˜•

 

์—ฌ๊ธฐ์„œ Front Controller๋Š” Controller ์ค‘์—์„œ๋„ ๋งจ ์•ž๋‹จ์—์„œ ์ด์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๋Š” Controller์ธ ๊ฒƒ์ด์—์š”.

  • DispatcherSevlet ๊ฐ์ฒด๊ฐ€ ํ•ด๋‹น ์—ญํ•  ์ˆ˜ํ–‰
  • Logic์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „, ์š”์ฒญ์— ๋Œ€ํ•œ ์„ ์ฒ˜๋ฆฌ ์ž‘์—… ์ˆ˜ํ–‰
  • ์˜ˆ : ์ง€์—ญ ์ •๋ณด ๊ฒฐ์ •, ๋ฉ€ํ‹ฐํŒŒํŠธ ํŒŒ์ผ ์—…๋กœ๋“œ ์ฒ˜๋ฆฌ ๋“ฑ

Front Contoller๋Š” Request๋ฅผ Handler Mapping์„ ํ†ตํ•ด ํ•ด๋‹น Request๋ฅผ ์–ด๋–ค Handler๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€ Mapping์„ ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

  • HandlerMapping ๊ฐ์ฒด๊ฐ€ Handler Mapping์— ๋Œ€ํ•œ ์ •๋ณด ๋‹ด๊ณ  ์žˆ์Œ

 

Mapping๋œ Handler๋ฅผ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์€ Hanler Adapter๊ฐ€ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด์—์š”.

  • HandlerAdapter ๊ฐ์ฒด๊ฐ€ ํ•ด๋‹น ์—ญํ•  ์ˆ˜ํ–‰

 

 

Contoller๋Š” ํ•ด๋‹น Request๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” Logic์„ ๋‹ด๊ณ  ์ž‡๋Š” ๊ฒƒ์ด์—์š”.

  • ๋ณดํ†ต ์š”์ฒญ์˜ ์ข…๋ฅ˜๋‚˜, Logic ๋ถ„๋ฅ˜์— ๋”ฐ๋ผ ๋‚ด๋ถ€์ ์œผ๋กœ ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋ชจ๋“ˆํ™”
  • ๊ฐ ์„œ๋น„์Šค์—์„œ๋Š” D์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ

 

Controller Service์—์„œ Logic ์ฒ˜๋ฆฌ ๋’ค, ๊ฒฐ๊ณผ๋ฅผ View Resolver๋ฅผ ๊ฑฐ์ณ View File์„ ๋ Œ๋”๋งํ•˜์—ฌ ๋‚ด๋ณด๋‚ด๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

  • ViewResolver๊ฐ€ ํ•ด๋‹น ์—ญํ•  ์ˆ˜ํ–‰
728x90
๋ฐ˜์‘ํ˜•

'Back-End ์ž‘์—…์‹ค > Spring Framework' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring Boot] @Order  (0) 2021.12.21
[WEB] Interceptor, Sevlet, Filter, Resource Handler ์•Œ์•„๋ณด๊ธฐ  (0) 2021.12.20
[Spring] @Builder (Builder Patter)  (0) 2021.10.11
[Spring] Bean Scope  (0) 2021.10.10
[Spring] Bean Life Cycle Call Back  (0) 2021.10.08