22.08.31 ์ฌ๋ฌ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉฐ ๊ณต๋ถํ ๋ด์ฉ๋ค์ ์ ๋ฆฌํ์์ต๋๋ค ๐
ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ ๋๋ค! ๐
MVC๋? Model, View, Controller์ ์ฝ์๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ ๊ฐ์ง ์ญํ ๋ก ๊ตฌ๋ถํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค.
์ฌ์ฉ์๊ฐ Controller๋ฅผ ์กฐ์ํ๋ฉด Model์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก View๋ฅผ ํตํด ์๊ฐ์ ํํ์ ์ ์ดํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํฉ๋๋ค.
์ด๋ฌํ ํจํด์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ๋ฉด, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ฐ์ ์์๋ ๊ทธ ์ด๋ฉด์์ ์คํ๋๋ ๋น์ฆ๋์ค ๋ก์ง์ ์๋ก ์ํฅ์์ด ์ฝ๊ฒ ๊ณ ์น ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๊ฒ ๋ฉ๋๋ค.
๐ค ์ด๊ฒ์ WEB์ ์ ์ฉํ๋ค๋ฉด?
1. ์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ์ ์ ์(Users)
2. Controller๋ ์ฌ์ฉ์๊ฐ ์์ฒญํ ์นํ์ด์ง๋ฅผ ์๋น์คํ๊ธฐ ์ํด์ ๋ชจ๋ธ์ ํธ์ถ(Mainpulates)
3. Model์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ผ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ ์ดํ ํ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ Return
4. Controller๋ Model์ด ๋ฆฌํดํ ๊ฒฐ๊ณผ๋ฅผ View์ ๋ฐ์(Updates)
5. ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋ View๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง(Sees)
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์ง์นญํฉ๋๋ค. ๋ฐ์ดํฐ๋ ๋ด๋ถ ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง ์๋ ์๊ณ , ๋ชจ๋ธ์ ํํํ๋ ์ด๋ฆ ์์ฑ์ผ๋ก ๊ฐ์ง ์ ์์ต๋๋ค. ๋ชจ๋ธ์ ์ํ์ ๋ณํ๊ฐ ์์ ๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ์ด๋ฅผ ํต๋ณดํฉ๋๋ค. ์ด์ ๊ฐ์ ํต๋ณด๋ฅผ ํตํด ๋ทฐ๋ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค ์ ์๊ณ , ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ์ ๋ณํ์ ๋ฐ๋ฅธ ์ ์ฉ ๊ฐ๋ฅํ ๋ช ๋ น์ ์ถ๊ฐ, ์ ๊ฑฐ, ์์ ํ ์ ์์ต๋๋ค.
View๋ ํด๋ผ์ด์ธํธ ์ธก ๊ธฐ์ ์ HTML, CSS, Javascript ๋ค์ ๋ชจ์๋ ์ปจํ ์ด๋์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ณผ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑํ๊ธฐ ์ํด ๋ชจ๋ธ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์ป์ด์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์ ๊ทผํ URL์ ๋ฐ๋ผ ์ฌ์ฉ์์ ์์ฒญ์ฌํญ์ ํ์ ํ ํ์ ๊ทธ ์์ฒญ์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ Model์ ์๋ขฐํ๊ณ , ๋ฐ์ดํฐ๋ฅผ View์ ๋ฐ์ํด์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ค๋๋ค.
๋ชจ๋ธ์ ๋ช ๋ น์ ๋ณด๋์ผ๋ก์จ ๋ทฐ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค? โ ์๋์์ ๋ฌธ์ ํธ์ง
์ปจํธ๋กค๋ฌ๊ฐ ๊ด๋ จ๋ ๋ชจ๋ธ์ ๋ช ๋ น์ ๋ณด๋์ผ๋ก์จ ๋ทฐ์ ํ์ ๋ฐฉ๋ฒ์ ๋ฐ๊ฟ ์ ์๋ค? โ ๋ฌธ์๋ฅผ ์คํฌ๋กค ํ๋ ๊ฒ
์ปจํธ๋กค๋ฌ์ ๊ท์น
MVC ํจํด์์ View๋ Controller์ ์ฐ๊ฒฐ๋์ด ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋จ์ ์์์ด๋ฏ๋ก ๋ค์์ View๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Model์ Controller๋ฅผ ํตํด์ View์ ์ฐ๊ฒฐ๋์ง๋ง, Controller์ ์ํด์ ํ๋์ View์ ์ฐ๊ฒฐ๋ ์ ์๋ Model๋ ์ฌ๋ฌ ๊ฐ๊ฐ ๋ ์ ์์ด View์ Model์ด ์๋ก ์์กด์ฑ์ ๋๊ฒ ๋ฉ๋๋ค. ์ฆ, Controller์ ๋ค์์ Model๊ณผ View๊ฐ ๋ณต์กํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๋ ์ํฉ์ด ๋ฐ์ํ ์๋ ์์ต๋๋ค.