2021. 12. 20. 19:21ใBack-End ์์ ์ค/Spring Framework
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค.
์ค๋์ 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 ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๋ณด๋ฉด ๋๋ ๊ฒ์ด์์.
์ ์ฒด ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ด์์.
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๊ฐ ํด๋น ์ญํ ์ํ
'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 |