๊ฐ๋ฐ
MVC ํจํด
gyeomii
2023. 6. 26. 18:55
๋ฐ์ํ
๐ MVC( Model, View, Controller )
- ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ , ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋ ๊ทธ ๊ตฌ์ฑ์์๋ฅผ ์ธ๊ฐ์ง์ ์ญํ ๋ก ๊ตฌ๋ถํ ๋์์ธ ํจํด
- ๋์์ธ ํจํด : ๊ฐ๋ฐ ์ค์ ๋ฐ์ํ ๋ฌธ์ ์ ๋ค์ ์ ๋ฆฌํด์ ์ํฉ์ ๋ฐ๋ผ ๊ฐํธํ๊ฒ ์ ์ฉํ ์ ์๋๋ก ์ ๋ฆฌํ ํํ
- ์ข ๋ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ์ ์ง๋ณด์ํ๊ณ ๊ณต์ ํ๋ฉฐ ๊ฐ๋ฐํ ์ ์๋๋ก ํจ
- ์๋ก ๋ถ๋ฆฌ๋์ด ๊ฐ์์ ์ญํ ์ ์ง์คํ ์ ์๊ฒ๋ ํ์ฌ ๊ฐ๋ฐ์ ํ๊ณ ์ดํ๋ฆฌ์ผ์ด์
์ ๋ง๋ ๋ค๋ฉด, ์ ์ง๋ณด์์ฑ, ์ดํ๋ฆฌ์ผ์ด์
์ ํ์ฅ์ฑ, ๊ทธ๋ฆฌ๊ณ ์ ์ฐ์ฑ์ด ์ฆ๊ฐํ๊ณ , ์ค๋ณต ์ฝ๋น์ด๋ผ๋ ๋ฌธ์ ์ ๋ํ ์ฌ๋ผ์ง๊ฒ ๋๋ค.
- ์ ์ฐ์ฑ : ํด๋ผ์ด์ธํธ์ ์๋ก์ด ์๊ตฌ์ฌํญ์ ๋ํด ์ต์ํ์ ๋น์ฉ์ผ๋ก ๋ณด๋ค ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์๋ ๊ฒ
๐ป ๋ชจ๋ธ, Model (๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ฃผ๋ฐฉ์ฅ)
- ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๋ณด, ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ธ๋ค.
- ์ฌ์ฉ์๊ฐ ํธ์งํ๊ธฐ ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
- ํ๋ฉด์ ์ถ๋ ฅํ ์ ๋ณด์ ํฌ๊ธฐ, ๋ด์ฉ, ํฌ๋งท๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ๋ค ๊ฐ๊ณ ์์ด์ผํจ.
- ๋ทฐ๋ ์ปจํธ๋กค๋ฌ์ ๋ํด์ ์ด๋ค ์ ๋ณด๋ ์์ง ๋ง์์ผ ํ๋ค.
- ๋ชจ๋ธ์์ UI๋ฅผ ์ง์ ์กฐ์ ํ๊ณ ์์ ํ ์ ์์ด์ผ ํ๋ค.
- ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ฉด ๋ณ๊ฒฝํต์ง์ ๋ํ ์ฒ๋ฆฌ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผํ๋ค.
- ๋ชจ๋ธ์์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ์ด ๋๋ฉด ์ด๋ฅผ ์ฌ์ฉ์์๊ฒ ์๋ ค์ผ ํ๊ณ , ๋๊ตฐ๊ฐ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์์ฒญ์ ๋ณด๋ด๋ฉด ์ด๋ฅผ ์์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผํ๋ค.
- ๋ชจ๋ธ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํด์ผํ๋ฉฐ, ์ธํฐํ์ด์ค์์๋ ๋ณํ์ง ์์์ผ ํ๋ค.
- ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถ ํ ๋ ์์ฒญ์ ๋ง๋ ์ญํ ์ ์ํํ๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ ์์ญ์ผ๋ก ์์ฉํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ
- ๋น์ฆ๋์ค ๋ก์ง : ์ ๋ฌด์ ํ์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ํ๋ก๊ทธ๋จ ๋ ผ๋ฆฌ๊ตฌ์กฐ
- DB์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ฑฐ๋ CRUD๋ฅผ ์ํํ๋ค.
- ์ํ์ ๋ณํ๊ฐ ์์ ๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ํต๋ณดํด ํ์ ์กฐ์น ๋ช ๋ น์ ๋ฐ์ ์ ์๊ฒ ํ๋ค.
๐ป ๋ทฐ, View (์ฃผ๋ฐฉ์ฅ์ด ๋ด์จ ๋ฐ์ดํฐ๋ฅผ ์ธํ ํ๋ ์ง์)
- ์๊ฐ์ ์ธ ๋ถ๋ถ, ํ๋ฉด์ ๋ด๋นํ๋ ์ญํ ์ ํ๋ค.
- ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค์ง ์ฐ๊ตฌํ๋ ๋ถ๋ถ
- ์ปจํธ๋กค๋ฌ๋ก๋ถํฐ ๋ฐ์ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ง๊ณ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ํ๋ฉด์ ๋ง๋๋ ์ผ์ ํ๋ค.
- ๋ง๋ค์ด์ง ํ๋ฉด์ ์น๋ธ๋ผ์ฐ์ ์ ์ ์กํ์ฌ ์น๋ธ๋ผ์ฐ์ ๊ฐ ์ถ๋ ฅํ๊ฒ ํ๋๊ฒ
- ์ถ์ถํ ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ธ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ฑฐ๋ ์ ๋ ฅํผ ๋๋ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ ์ํ ์ธํฐํ์ด์ค๋ฅผ ํ์ํ๋ ์์ญ
๐ป ์ปจํธ๋กค๋ฌ, Controller (ํ๋ฆ์ ๊ด๋ฆฌํ๋ ๋งค๋์ )
- ๋ชจ๋ธ์ด๋ ๋ทฐ์ ๋ํด์ ์๊ณ ์์ด์ผ ํ๋ค
- ๋ชจ๋ธ์ด๋ ๋ทฐ๋ ์๋ก์ ์กด์ฌ๋ฅผ ๋ชจ๋ฅด๊ณ , ๋ณ๊ฒฝ์ ์ธ๋ถ๋ก ์๋ฆฌ๊ณ ์์ ํ๋ ๋ฐฉ๋ฒ๋ง ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ปจํธ๋กค๋ฌ๊ฐ ์ค์ฌํด์ผ ํจ
- ๋ชจ๋ธ์ด๋ ๋ทฐ์ ๋ณ๊ฒฝ์ ๋ชจ๋ํฐ๋ง ํด์ผ ํ๋ค.
- ๋ชจ๋ธ์ด๋ ๋ทฐ์ ๋ณ๊ฒฝ ํต์ง๋ฅผ ๋ฐ์ผ๋ฉด ์ด๋ฅผ ํด์ํด์ ๊ฐ๊ฐ์ ๊ตฌ์ฑ์์์๊ฒ ํต์ง๋ฅผ ํด์ผํฉ๋๋ค.
- ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์ธ๋ก์ง์ ์ปจํธ๋กค๋ฌ๊ฐ ๋ด๋นํ๊ฒ ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๊ทผํ๋ ค๋ URL์ ๋ฐ๋ผ์ ์์ฒญ์ฌํญ์ ํ์
- ์์ฒญ์ ๋ง๋ Model์ ๋ฐ์ดํฐ๋ฅผ ์๋ขฐ
- ๋ฐ์ดํฐ๋ฅผ View์ ๋ฐ์ํด์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ค
- ์ ๋ฐ์ ์ธ ์ ์ด๋ฅผ ๋ด๋นํ๋ ์ญํ
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ ๋, ๊ทธ ์์ฒญ์ ๋ํด ์ค์ ์ ๋ฌด๋ฅผ ์ํํ๋ ๋ชจ๋ธ ์ปดํฌ๋ํธ๋ฅผ ํธ์ถํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด, ๋ชจ๋ธ์ ์ ๋ฌํ๊ธฐ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํจ
- ๋ชจ๋ธ์ด ์ ๋ฌด๋ฅผ ๋ง์น๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ์๊ฒ ์ ๋ฌํ๋ค.
๐ปWebsite์์ MVC๊ตฌ์กฐ
- ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์คํ์ ์์ฒญํ๋ค.
- ์น์๋ฒ๋ ๋ค์ด์จ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ์๋ธ๋ฆฟ์ ์ฐพ์์ ์์ฒญ์ ์ ๋ฌํ๋ค.
- ์๋ธ๋ฆฟ์ ๋ชจ๋ธ ์๋ฐ ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ์ฌ ๊ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋, JDBC๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ธํฐ๋์ ์ ํตํด ๊ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- ์ ๋ฌด์ํ์ ๋ง์น ๊ฒฐ๊ณผ ๊ฐ์ View๋ฅผ ์ ๋ฌํ๋ค.
- ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ ๊ฒฐ๊ณผ๊ฐ์ View์๊ฒ ์ ๋ฌํ๋ค.
- JSP๋ ์ ๋ฌ๋ฐ์ ๊ฐ์ ์ฐธ์กฐํ์ฌ ์ถ๋ ฅํ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ง๋ค๊ณ ์ปจํธ๋กค๋ฌ์๊ฒ ์ ๋ฌํ๋ค.
- View๋ก๋ถํฐ ๋ฐ์ ํ๋ฉด์ ์น์๋ฒ์๊ฒ ์ ๋ฌํ๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๋ ์น์๋ฒ๋ก๋ถํฐ ์์ฒญํ ๊ฒฐ๊ณผ๊ฐ์ ์๋ต๋ฐ์ผ๋ฉด ๊ทธ ๊ฐ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
- ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ์ํ๋ค(Uses)
- Controller๋ ์ฌ์ฉ์๊ฐ ์์ฒญํ ์นํ์ด์ง๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์ Model์์ ๋ฐ์ดํฐ๋ฅผ ํธ์ถํ๋ค. (Mainpulates)
- Model์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ผ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ ์ดํ ํ์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ค.
- Controller๋ Model์ด ๋ฆฌํดํ ๊ฒฐ๊ณผ๋ฅผ View์ ๋ฐ์ํ๋ค. (Updates)
- ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋ View๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ค. (Sees)
๋ฐ์ํ