์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- udp
- ์ฝ๋์
- ๊ธฐ์ด100์
- Python
- Dialog
- OOP
- swagger
- Factory Method Pattern
- http method
- datepicker
- IOC
- FACTORY
- AndroidStudio
- 2024-08-20
- url
- di
- Kotlin
- ์ด๋ ธํ ์ด์
- OpenAPI
- ์ฑ์ฉํ์ ํ
- menutab
- uri
- 2024-08-21
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- tcp
- Android Studio
- fontstyle
- ํ๋ IT&E
- reflection
- URN
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 |