MVC
์๋ฏธ
๋ฐ์ดํฐ(Model) - ์ฌ์ฉ์ ์ธํฐํ์ด์ค(View) - ๋ ผ๋ฆฌ์ ์ด(Controller) ๋ก ๋๋ ์ํํธ์จ์ด ๋์์ธ ํจํด
ASP.NET Core ์์๋ MVC ๋ฐฉ์์ ํ๋ ์์ํฌ๋ฅผ ์ง์ํจ
Model
์ฑ์ด ํฌํจํด์ผํ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง๋ฅผ ์ ์ํจ. ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ ์ฅํ๋ฉฐ, ์ด๋ฅผ ์ปจํธ๋กค๋ฌ๋ ๋ทฐ์์ ์ฌ์ฉํ ์ ์๋ ํํ๋ก ๋ณํํจ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด์๊ณ , ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์์ Model์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ด ๋ง์ด ์ฐ์
์์ ์ ์ํ์ ๋ณํ๊ฐ ์์ ๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ์ ๋ฌํจ(๋๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ๊ฐ ๊ฐ์ ธ๊ฐ)
View
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํจ
ํ์ํ ๋ฐ์ดํฐ๋ฅผ model๋ก ๋ถํฐ ๋ฐ์์, ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค. ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ ์ธํฐํ์ด์ค๋ ๊ตฌํํจ
์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด ์์ฒด์ ๋ํ ๊ตฌํ์ ์๋ฏธํจ
Controller
๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์ฐ๊ฒฐํ๊ณ , ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ํ ์๋ต์ผ๋ก ๋ชจ๋ธ/๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ก์ง์ ์ ์ํจ
๋ชจ๋ธ์ ๋ช ๋ น์ ๋ณด๋์ผ๋ก์จ ๋ชจ๋ธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ณ , ๋ทฐ์ ๋ช ๋ น์ ๋ณด๋์ผ๋ก์จ ๋ชจ๋ธ์ ํ์ ๋ฐฉ๋ฒ์ ๋ฐ๊ฟ ์ ์์
์์
์ฑ ์ฌ์ฉ์๊ฐ ๋ฌผํ์ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ ๋
์ฌ์ฉ์๋ View๊ฐ ๋ง๋ ์ฅ๋ฐ๊ตฌ๋ ์ถ๊ฐ ๋ฒํผ ํด๋ฆญ
Controller๊ฐ Model์๊ฒ ์ฌ์ฉ์์ ์ฅ๋ฐ๊ตฌ๋ ๋ชฉ๋ก์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํจ์ ์๋ฆผ
Model์ Controller์ ์๋ด๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํจ
View๊ฐ ๋ค์ ์ ๋ฐ์ดํธ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค
์ฅ์
๋ก์ง๊ณผ UI๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์์ฑ, ํ์ฅ์ฑ, ํ ์คํธ ์ฉ์ด์ฑ์ ๋์ผ ์ ์์
์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ๊ฐ๋ฐ์ ํ ๋, ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๊ฐ๋ฐ์ ๋ณต์ก์ฑ์ ์ค์ด๊ณ ๊ฐ์์ ์ญํ ์ ์ง์คํ ์ ์์
๋์ ์์
HTTP Request ๊ฐ ์๋ฒ์ ์ด
Routing์ ์ํด Controller / Action์ด ์ ํด์ง
Model Binding์ผ๋ก Request์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฑ ํ๊ณ ์ ํจ์ฑ ๊ฒ์ฌ (Binding Model๋ก ๋ฐ์์ ์ฒ๋ฆฌ)
๋ด๋น ์๋น์ค๋ก ๋ชจ๋ธ์ ์ ๋ฌํจ (Application Model๋ก ๋ฐ๊ฟ์ ๋ณด๋)
๋ด๋น ์๋น์ค๊ฐ ๊ฒฐ๊ณผ๋ฌผ์ Action์๊ฒ ๋๋ ค์ค
Action์์ View๋ก ์ ๋ฌ (View Model)
WebAPI ์๋ฒ์ ๊ฒฝ์ฐ, API Model ๋ก ๋ณด๋ด์ค์ Response๋ก ๊ฒฐ๊ณผ๋ฌผ ์ ์ก
View์์ HTML ์์ฑ
Response๋ก HTML ๊ฒฐ๊ณผ๋ฌผ๋ก ์ ์ก
ASP.NET Core์์์ MVP
์์ฑ
์์ฑ์ ๊ธฐ๋ณธ ํ๋ ์์ํฌ๋ฅผ ์ง์ํจ
Model, View, Controller ๊ฐ๊ฐ ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋์ด ์๊ณ ์ฐ๊ฒฐ๋์ด ์์
๊ฐ ์์ญ์์ ๊ตฌ์ฑ์์๋ก ๊ตฌํํจ
์ด๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด ๋ผ์ฐํ (Routing)๊ณผ ์ปจํธ๋กค๋ฌ ์ก์ (Controller Action) ๋ฉ์๋๋ฅผ ์ฌ์ฉํจ
๋ผ์ฐํ (Routing)๊ณผ ์ปจํธ๋กค๋ฌ ์ก์ (Controller Action)์ ๋ํ ์์ธํ ์ค๋ช ์ ํด๋น ํ์ด์ง ์ฐธ๊ณ
WebAPI server ์ MVC
MVC ๋ฐฉ์์์ V๋ง ๋น ์ง ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ฉด ๋จ. VisualStudio์์ MVC๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ ์์ฑํ๊ณ , V ๋ถ๋ถ๋ง ๊ฑฐ๋ฌ๋ด๊ณ ์ฌ์ฉํด๋ ๋จ
V ๋์ JSON ๋ฐฉ์์ผ๋ก ๋ณด๋ด์ฃผ๋ฉด ๋จ
์ฐธ๊ณ ๋ฌธํ
Last updated