๐ MVC
์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ๋ ์ฌ์ฉํ๋ ๋์์ธ ํจํด
โก๏ธ MVC ํจํด์ ๋์
ํ๋ฉด์ UI ์์ญ๊ณผ ๋๋ฉ์ธ(๋น์ฆ๋์ค ๋ก์ง) ์์ญ์ผ๋ก ๊ตฌ๋ถ๋์ด ์๋ก์๊ฒ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๊ฐ๋ฐ๊ณผ ์ ์ง๋ณด์๊ฐ ๊ฐ๋ฅํ๊ฒ ๋จ

โ๏ธ Model
- ์ดํ๋ฆฌ์ผ์ด์
์ ์ ๋ณด, ๋ฐ์ดํฐ์ ๊ด๋ จ๋ ๋ถ๋ถ
- Spring MVC ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ ๋ฌ๋ฐ์ผ๋ฉด ์์ฒญ ์ฌํญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์์
์ ํจ
- ์ฒ๋ฆฌํ ์์
์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋๋ ค์ฃผ์ด์ผํ๋๋ฐ ์ด๋ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ผ๋ก ๋๋ ค์ฃผ๋ ์์
์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ
โ๏ธ View
- ๋์ ๋ณด์ด๋ ๊ฒ
- Model์ ์ด์ฉํ์ฌ ์น ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋ฉด์ ๋ณด์ด๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ ์ญํ
- ๋ค์ํ View ๊ธฐ์
- HTML ํ์ด์ง ์ถ๋ ฅ
- PDF, Excel ๋ฑ์ ๋ฌธ์ ํํ๋ก ์ถ๋ ฅ
- XML, JSON ๋ฑ ํน์ ํ์์ ํฌ๋งท์ผ๋ก ๋ณํ
โ๏ธ Controller
- ๋ฌด์ธ๊ฐ๋ฅผ ์ ์ดํ๋ ๊ฒ(ํ๋ก๊ทธ๋๋ฐ์ด ๋ง์ด ์ด๋ฃจ์ด์ง)
- ํด๋ผ์ด์ธํธ ์ธก์ ์์ฒญ์ ์ง์ ์ ์ผ๋ก ์ ๋ฌ๋ฐ๋ ์๋ํฌ์ธํธ๋ก์จ Model๊ณผ View์ ์ค๊ฐ์์ ์ํธ์์ฉ์ ํด์ฃผ๋ ์ญํ
- ํด๋ผ์ด์ธํธ ์ธก์ ์์ฒญ์ ์ ๋ฌ๋ฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ฑฐ์น ํ Model ๋ฐ์ดํฐ๊ฐ ๋ง๋ค์ด์ง๋ฉด ์ด Model ๋ฐ์ดํฐ๋ฅผ View๋ก ์ ๋ฌํ๋ ์ญํ

๐ MVC ์งํ ๊ณผ์
- ํด๋ผ์ด์ธํธ๊ฐ URL์ ์์ฒญํ๋ฉด ์น ๋ธ๋ผ์ฐ์ ์์ ์คํ๋ง์ผ๋ก request๊ฐ ๋ณด๋ด์ง๋ค.
- Dispatcher Servlet์ด request๋ฅผ ๋ฐ์ผ๋ฉด, Handler Mapping์ ํตํด ํด๋น URL์ ๋ด๋นํ๋ Controller๋ฅผ ํ์ ํ ์ฐพ์๋ธ๋ค.
- ์ฐพ์๋ธ Controller๋ก request๋ฅผ ๋ณด๋ด์ฃผ๊ณ , ๋ณด๋ด์ฃผ๊ธฐ ์ํด ํ์ํ Model์ ๊ตฌ์ฑํ๋ค.
- Model์์๋ ํ์ด์ง ์ฒ๋ฆฌ์ ํ์ํ ์ ๋ณด๋ค์ Database์ ์ ๊ทผํ์ฌ ์ฟผ๋ฆฌ๋ฌธ์ ํตํด ๊ฐ์ ธ์จ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ํตํด ์ป์ Model ์ ๋ณด๋ฅผ Controller์๊ฒ response ํด์ฃผ๋ฉด, Controller๋ ์ด๋ฅผ ๋ฐ์ Model์ ์์ฑ์์ผ Disptcher Servlet์๊ฒ ์ ๋ฌํด์ค๋ค.
- Disptcher Servlet์ View Resolver๋ฅผ ํตํด request์ ํด๋นํ๋ View ํ์ผ์ ํ์ ํ ๋ฐ์๋ธ๋ค.
- ๋ฐ์๋ธ View ํ์ด์ง ํ์ผ์ Model์ ๋ณด๋ธ ํ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ํ์ด์ง๋ฅผ ์์ฑ์์ผ ๋ฐ์๋ธ๋ค.
- ์์ฑ๋ View ํ์ผ์ ํด๋ผ์ด์ธํธ์ responseํ์ฌ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.

Disptcher Servlet
- ๋ชจ๋ request๋ฅผ ์ฒ๋ฆฌํ๋ ์ค์ฌ ์ปจํธ๋กค๋ฌ
- ์๋ธ๋ฆฟ ์ปจํ
์ด๋์์ http ํ๋กํ ์ฝ์ ํตํด ๋ค์ด์ค๋ ๋ชจ๋ request์ ๋ํด ์ ์ผ ์๋จ์์ ์ค์์ง์ค์์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ ํต์ฌ์ ์ธ ์ญํ
- ๊ธฐ์กด์๋ web.xml์ ๋ชจ๋ ๋ฑ๋กํด์ค์ผ ํ์ง๋ง Disptcher Servlet์ด ๋ชจ๋ request๋ฅผ ํธ๋ค๋งํ๋ฉด์ ์์
์ ํธ๋ฆฌํ๊ฒ ํ ์ ์์
Handler Mapping
- ํด๋ผ์ด์ธํธ์ request url์ ์ด๋ค ์ปจํธ๋กค๋ฌ๊ฐ ์ฒ๋ฆฌํด์ผ ํ ์ง ์ฐพ์์ Disptcher Servlet์๊ฒ ์ ๋ฌํด์ฃผ๋ ์ญํ
- ์ปจํธ๋กค๋ฌ ์์์ URL์ ๋งคํ์ํค๊ธฐ ์ํด @RequestMapping์ ์ฌ์ฉํ๋๋ฐ ํธ๋ค๋ฌ๊ฐ ์ด๋ฅผ ์ฐพ์์ฃผ๋ ์ญํ ์ ํจ
Controller
- ์ค์ง์ ์ธ ์์ฒญ ์ฒ๋ฆฌํ๋ ๊ณณ
- Disptcher Servlet(ํ๋ก ํธ ์ปจํธ๋กค๋ฌ) Controller(๋ฐฑ์๋ ์ปจํธ๋กค๋ฌ)
- Model์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ Disptcher Servlet์๊ฒ ๋ฐํ
View Resolver
- ์ปจํธ๋กค๋ฌ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค View๋ฅผ ๊ฒฐ์ ํด์ฃผ๋ ์ญํ
[์ฐธ๊ณ ์๋ฃ]
๐๋งํฌ
๐๋งํฌ
๐๋งํฌ