์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- OpenAPI
- ๊ธฐ์ด100์
- IOC
- 2024-08-21
- Kotlin
- url
- AndroidStudio
- http method
- OOP
- URN
- swagger
- Factory Method Pattern
- ์ด๋ ธํ ์ด์
- udp
- Android Studio
- ์ฝ๋์
- datepicker
- menutab
- di
- tcp
- Python
- Dialog
- uri
- 2024-08-20
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- reflection
- FACTORY
- ์ฑ์ฉํ์ ํ
- fontstyle
- ํ๋ IT&E
dingdong coding
MVC, Spring MVC ๋ณธ๋ฌธ
MVC๋?
MVC ํจํด์ ์ํคํ ์ณ๋ฅผ ์ค๊ณํ๊ธฐ ์ํ ๋์์ธ ํจํด์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ๊ตฌ์ฑ์์๋ฅผ 3๊ฐ์ง๋ก ๋๋๋๋ค.
์ด๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ๋ถ์์ผ ์๋ก ์ํฅ์์ด ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.

โข M ( Model ) "๋ฌด์์"
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ปดํฌ๋ํธ
- ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถํ ๋, ์์ฒญ์ ๋ง๋ ์ญํ ์ ์ํํฉ๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ ์์ญ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ ๋๋ค.
โข V ( View )
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์ปดํฌ๋ํธ
- Controller๋ก ๋ถํฐ ๋ฐ์ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ๊ณ ์ถ๋ ฅํ ํ๋ฉด์ ๋ง๋๋ ์ผ์ ํฉ๋๋ค.
- ์์ฑ๋ ํ๋ฉด์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๊ณ ์ถ๋ ฅํ๊ฒ ๋ง๋ญ๋๋ค.
- ์ฌ์ฉ์์ ์ํธ์์ฉ(๋ฐ์ดํฐํ์, ์ ๋ ฅ ํผ ๋ฑ)์ ์ํ ์ธํฐํ์ด์ค๋ฅผ ํ์ํ๋ ๋ถ๋ถ์ ๋๋ค.
โข C ( Controller ) "์ด๋ป๊ฒ"
- ํด๋ผ์ด์ธํธ ์์ฒญ(์ฌ์ฉ์์ ์ ์ถ๋ ฅ)์ ์ฒ๋ฆฌํ๊ณ Model, View๋ฅผ ์ค๊ฐํ๋ ์ปดํฌ๋ํธ
- ์ผ์ข ์ ์กฐ์ ์๋ก ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ์์ ๋, ๊ทธ ์์ฒญ์ ๋ํ ์ค์ ์ ๋ฌด๋ฅผ ์ํํ๋ Model ์ปดํฌ๋ํธ๋ฅผ ํธ์ถํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ๋ชจ๋ธ์ ์ ๋ฌํ๊ธฐ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ๋ชจ๋ธ์ด ์ ๋ฌด๋ฅผ ๋ง์น๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ์ ์ ๋ฌ
ํฉ๋๋ค.
Spring MVC๋?
Spring MVC๋ Spring์์ ์ ๊ณตํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ MVC ํจํด ๊ธฐ๋ฐ์ ์น ํ๋ ์ ์ํฌ์ ๋๋ค.
Spring MVC ์ปดํฌ๋ํธ
โข DispatcherServlet : ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญ์ ๋จผ์ ๋ฐ์๋ค์ด๋ ์๋ธ๋ฆฟ, ์์ฒญ์ ๋ง๋ Controller์๊ฒ ์์ฒญ์ ์ ๋ฌ
โข HandlerMapping : ํด๋ผ์ด์ธํธ์ ์์ฒญ URL์ ์ด๋ค Controller๊ฐ ์ฒ๋ฆฌํ ์ง ๊ฒ์ฌ
โข Controller : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ DispatcherServlet์ ์ ๋ฌ
โข ViewResolver : Controller์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ(๋ฐ์ดํฐ)๋ฅผ ์์ฑํ view๋ฅผ ์ฐพ์
โข View : UI
๐ Servlet์ ๋ํด ์ ์ ๋ฆฌ๋ ๊ธ์ด ์์ด ์ฐธ์กฐํ์์ต๋๋ค.๐ ์๋ธ๋ฆฟ(Servlet)์ด๋?

1. Client => DispatcherServlet
โข ํด๋ผ์ด์ธํธ๋ URL์ ํตํด ์์ฒญ์ ์ ์กํฉ๋๋ค.
2. DispatcherServlet => HandlerMapping
โข ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ ํธ๋ค๋ฌ ๋งคํ์ ํตํด ํด๋น ์์ฒญ์ด ์ด๋ ์ปจํธ๋กค๋ฌ์ ์จ ์์ฒญ์ธ์ง ์ฐพ์ต๋๋ค.
3. HandlerMapping => DispatcherServlet => ControllerAdapter => Controller
โข ์๋ง๋ Controller๋ฅผ ์ฐพ์ผ๋ฉด DispatcherServlet์ ํด๋น Controller์๊ฒ ์์ฒญ์ ์์ํฉ๋๋ค.
โข ์ ์์ ๊ณผ์ ์ ControllerAdapter๊ฐ ํด๋น๋๋ Controller์๊ฒ ์ ๋ฌํฉ๋๋ค.
4. Controller => Service
โข Controller๋ ๋งตํ๋๋ ๋ฉ์๋๋ฅผ ์คํํ์ฌ ํด๋น๋๋ Service์ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํฉ๋๋ค.
5. Service => Controller
โข Service๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ Controller์ ์๋ตํฉ๋๋ค.
6. Controller => ControllerAdapter => DispatcherServlet
โข Controller๋ ์๋ต๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค view๋ฅผ ํตํด ๋ณด์ฌ์ค ๊ฒ์ธ์ง ์ ๋ณด๋ฅผ ๋ด์ DispatcherServlet์ ์๋ตํฉ๋๋ค.
7. DispatcherServlet => ViewResolver
โข DispatcherServlet๋ Controller(ControllerAdapter)์๊ฒ ๋ฐ์ view์ ๋ํ ์ ๋ณด๋ฅผ ViewResolver์ ๋๊น๋๋ค.
8. ViewResolver => DispatcherServlet
โข ViewResolver๋ jsp ๋๋ html์ ์ฐพ์์ DispatcherServlet์๊ฒ ์๋ตํฉ๋๋ค.
9. => View
โข DispatcherServlet๋ ์๋ต๋ฐ์ jsp ๋๋ html์ View์๊ฒ Render๋ฅผ ์ง์ํ๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ผ์ด์ธํธ์๊ฒ View๊ฐ ์ ๊ณต ๋ฉ๋๋ค.
ํ์ต์ ๋ง์ ๋์์ด ๋ ๋ธ๋ก๊ทธ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ต๋๋ค. ๐
์ฐธ์กฐ ๋ฐ ์ถ์ฒ
'๐Spring > Basic' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JDBC vs JDBC Template vs JPA (0) | 2022.06.18 |
---|---|
Spring Framework, Spring Boot (0) | 2022.06.18 |
Spring Bean, Spring Container (0) | 2022.06.17 |
์ด๋ ธํ ์ด์ ์ ๋ฆฌ @ (0) | 2022.06.14 |
์ ์ด์ ์ญ์ ๊ณผ ์์กด์ฑ ์ฃผ์ ( Inversion of Control, Dependency Injection ) (0) | 2022.01.26 |