๐ ๋ชฉ ์ฐจ
1๏ธโฃ Spring MVC๋?
2๏ธโฃ Spring MVC์ ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์
Spring MVC๋?
Spring MVC๋ Spring์์ ์ ๊ณตํ๋ ์น ๋ชจ๋์ด๋ค. Model, View, Controller์ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๊ฐ ์๊ณ , MVC๋ ์ธ ๊ฐ์ง ๊ตฌ์ฑ์์์ ์ฝ์์ด๋ค.
1๏ธโฃ Model
Model์ ์์ ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ค.
Spring MVC ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ผ๋ฉด ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ ์์ ์ ํ๋ค. ์ด๋ ๊ฒ ์ฒ๋ฆฌํ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋๋ ค์ค์ผ ํ๋๋ฐ, ์ด ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ผ๋ก ๋๋ ค์ฃผ๋ ์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ Model์ด๋ผ๊ณ ํ๋ค.
2๏ธโฃ View
View๋ Model ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ์น ๋ธ๋ผ์ฐ์ ๊ฐ์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ค.
3๏ธโฃ Controller
Controller๋ ํด๋ผ์ด์ธํธ ์ธก์ ์์ฒญ์ ์ง์ ์ ์ผ๋ก ์ ๋ฌ๋ฐ๋ ์๋ํฌ์ธํธ(Endpoint)๋ก์จ ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์ค๊ฐ์์ ์ํธ ์์ฉ์ ํด์ฃผ๋ ์ญํ ์ ํ๋ค. ์ฆ, ํด๋ผ์ด์ธํธ ์ธก์ ์์ฒญ์ ์ ๋ฌ ๋ฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ฑฐ์น ํ์ ๋ชจ๋ธ ๋ฐ์ดํฐ๊ฐ ๋ง๋ค์ด์ง๋ฉด ์ด ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฅผ ๋ทฐ๋ก ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค.
Spring MVC์ ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์
ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )๊ฐ ์์ฒญ์ ์ ์กํ๋ฉด, DispatcherServlet์ ์์ฒญ์ด ์ ์ก๋๋ค.
โDispatcherServlet(๋์คํจ์ฒ์๋ธ๋ฆฟ)
- Dispatch : ๋ณด๋ด๋ค
- HTTP ํ๋กํ ์ฝ๋ก ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ ๊ฐ์ฅ ๋จผ์ ๋ฐ์ ์ ํฉํ ์ปจํธ๋กค๋ฌ์ ์์ํ๋ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ
- ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Tomcat๊ณผ ๊ฐ์ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๊ฐ ์์ฒญ์ ๋ฐ์
- ๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ์์ฒญ์ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ์ธ ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ด ๊ฐ์ฅ ๋จผ์ ์์ฒญ์ ๋ฐ์
- ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ ๊ณตํต์ ์ธ ์์ ์ ๋จผ์ ์ฒ๋ฆฌํ ํ์ ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํด์ผ ํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ์์ ์์
- Front Controller(ํ๋ก ํธ ์ปจํธ๋กค๋ฌ) : ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ์ ์ผ ์์์ ์๋ฒ๋ก ๋ค์ด์ค๋ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ๋ฐ์์ ์ฒ๋ฆฌํด์ฃผ๋ ์ปจํธ๋กค๋ฌ, MVC ๊ตฌ์กฐ์์ ํจ๊ป ์ฌ์ฉ๋๋ ๋์์ธ ํจํด
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์์ธ ์ฒ๋ฆฌ - Controller์์ ์ฒ๋ฆฌ (0) | 2022.10.27 |
---|---|
[Spring] MapStruct ์ฌ์ฉํ์ฌ Mapper ๊ตฌํํ๊ธฐ (0) | 2022.10.20 |
[Spring Framework] ResponseEntity (0) | 2022.08.25 |
[Spring] Spring MVC Controller ์ด๋ ธํ ์ด์ (0) | 2022.08.24 |
[Spring] AOP๋ (0) | 2022.08.17 |
๋๊ธ