MVCํจํด์ ๋์์ธํจํด ์ค ํ๋โ
์คํจํ๋ ์๋ฃ, ์ฌ๋ก๋ฅผ ๋ชจ์ ๋ ๊ฒ โ ํจํด, ์ํคํ ์ณ
์ํํธ์จ์ด ๋์์ธํจํด
๐ MVCํจํด
: SpringBoot ์ํคํ ์ณ์์ Presentation ๊ณ์ธต์ ์ํจ
๐ Model : ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ณด ๋ฐ ๋ฐ์ดํฐ
๐ View : ํ
์คํธ, ์ฒดํฌ๋ฐ์ค ๋ฑ ์ฌ์ฉ์์ธํฐํ์ด์ค ์์
๐ Controller : ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค๋ก์ง ์ฌ์ด์ ์ํธ๋์ ๊ด๋ฆฌ
Client ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ฆ๋์ค๋ก์ง ๋ถ๋ฆฌ โ
์ ํ๋ฆฌ์ผ์ด์ ์๊ฐ์ ์์ ๋ฐ ๋น์ฆ๋์ค๋ก์ง์ ์๋ก ์ํฅ์์ด ์ฝ๊ฒ ๊ณ ์น ์ ์์ โ
View์ ๋ชจ๋ ๋น์ฆ๋์ค๋ก์ง ๋ฃ์ผ๋ฉด ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์
โ Client๊ฐ Controller ์กฐ์
โก Controller๋ Model์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๊ฐ์ ธ์ด
โข Model ๋ฐ์ดํฐ๊ธฐ๋ฐ โ View(์๊ฐ์ ํํ๋ด๋น) ์ ์ด
โฃ View๋ฅผ ํตํด Client์๊ฒ ์ต์ข ์ ๋ฌ
๐ Model
: Data์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฌด์์ ํ ๊ฒ์ธ์ง ์ ์ํ๋ ๋ถ๋ถ
: ๋ด๋ถ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ญํ
Controller๊ฐ ํธ์ถ โ DB์ ์ฐ๋ํด Client ์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃธ
๋ฐ์ดํฐ์ ์ฐ๊ด๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํจ
๋ฐ์ดํฐ ์ถ์ถ, ์ ์ฅ, ์ ๋ฐ์ดํธ, ์ญ์ ๋ฑ์ ์ญํ ์ ์ํํจ
DB, ์์, ์ด๊ธฐํ๊ฐ, ๋ณ์ ๋ฑ
Client๊ฐ ํธ์งํ๊ธธ ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์
View, Controller์ ๋ํ ์ด๋ค ์ ๋ณด๋ ์๊ณ ์์ผ๋ฉด โ
๋ณ๊ฒฝ ์, ๋ณ๊ฒฝ ํต์ง์ ๋ํ ์ฒ๋ฆฌ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผํจ
๐ View
: Client์๊ฒ ๋ณด์ฌ์ฃผ๋ ํ๋ฉด(UI)
: ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Client๊ฐ ๋ณผ ์ ์๋ ํ๋ฉด(์ถ๋ ฅ๋ด๋น)
Client์ ์ํธ์์ฉ โ Controller๋ก ๋ฐ์ Model์ ๊ฒฐ๊ณผ๊ฐ
โก๏ธ Client ํ๋ฉด์ผ๋ก ์ถ๋ ฅ
MVCํจํด์์ ์ฌ๋ฌ๊ฐ์ View ์กด์ฌ๊ฐ๋ฅ
Model์์ ๋ฐ์ ๋ฐ์ดํฐ๋ ๋ณ๋๋ก ์ ์ฅ โ
Model์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด์ ์ฅ โ
Model, Controller์ ๋ํ ์ด๋ ํ ์ ๋ณด๋ ์๊ณ ์์ผ๋ฉด ์๋
๋ณ๊ฒฝ ์, ๋ณ๊ฒฝ ํต์ง์ ๋ํ ์ฒ๋ฆฌ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผํจ
๐ Controller
: Model๊ณผ View๋ฅผ ์ด์ด์ฃผ๋ ์ธํฐํ์ด์ค ์ญํ
Client๊ฐ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋๊ฒ์ ๋ํ Event๋ฅผ ์ฒ๋ฆฌํจ
Model์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด View์๊ฒ ์ ๋ฌํ ์ง ์๋ ค์ฃผ๋ ์ญํ
โ Client View์ Request
โก Controller ํด๋น Model ํธ์ถ
โข Model โ ๊ฒฐ๊ณผ View์ ์ ๋ฌ
Model, View์ ๋ํด ์๊ณ ์์ด์ผํจ
Model, View ๋ณ๊ฒฝ์ ๋ชจ๋ํฐ๋งํจ
๊ธฐ๋ฅ๋ณ๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌ (Model-View-Controller)
โ ์ฝ๋์ ๊ฐ๋
์ฑ + ์ฌ์ฌ์ฉ์ฆ๊ฐ โ
๊ฐ ๊ตฌ์ฑ์์ ๋ ๋ฆฝ โ ํ์ ์, ๊ฐ๋ฐ๋ฅด์ด ํจ์จ์ ๋์ฌ์ค
๊ฐ๋ฐ ํ, ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋ณด์ฅ๋จ
Model๊ณผ View๊ฐ ์๋ก์ ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์๊ณ ๋
๋ฆฝ์ ์ธ ์ํ๋ผ ํ์ง๋ง,
Controller๋ฅผ ํตํ ์ํต์ ํจ
โ ์์กด์ฑ ์์ ํ ๋ถ๋ฆฌ๋ถ๊ฐ โ๏ธ
View์ Model์ด Controller๋ฅผ ํตํด ์ฐ๊ฒฐ โ Controller๊ฐ ๊ฑฐ๋ํด์ง ๐จ
์์คํ ์ ๋ณด ์ ๋ดค์ต๋๋ค!