๐ MVC (Model View Controller)
๋์์ธ ํจํด ์ค ํ๋์ธ MVC ํจํด์ Model, View, Controller์ ์ค์๋ง๋ก ์ดํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ ๋ ๊ทธ ๊ตฌ์ฑ์์๋ฅผ ์ธ๊ฐ์ง์ ์ญํ ๋ก ๊ตฌ๋ถํ ํจํด์ ์๋ฏธ
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ฆ๋์ฌ ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์๋ก ์ํฅ ์์ด ์ฝ๊ฒ ๊ณ ์น ์ ์๋ ์ค๊ณ๊ฐ ๊ฐ๋ฅ
์ปจํธ๋กค๋ฌ (Controller)
๋ชจ๋ธ(Model)๊ณผ ๋ทฐ(view) ์ฌ์ด์์ ๋ธ๋ฆฟ์ง ์ญํ ์ ์ํ
์ฑ์ ์ฌ์ฉ์๋ก๋ถํฐ ์
๋ ฅ์ ๋ํ ์๋ต์ผ๋ก ๋ชจ๋ธ ๋ฐ ๋ทฐ๋ฅผ ์
๋ฐ์ดํธ ํ๋ ๋ก์ง์ ํฌํจ
์ฌ์ฉ์์ ์์ฒญ์ ๋ชจ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ์งํ๋์ด์ผ ํจ
์ปจํธ๋กค๋ฌ๋ก ๋ค์ด์จ ์์ฒญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๊ฒฐ์ ํ์ฌ ๋ชจ๋ธ๋ก ์์ฒญ์ ์ ๋ฌํจ
ex) ์ผํ๋ชฐ์์ ์ํ์ ๊ฒ์ํ๋ฉด ๊ทธ ํค์๋๋ฅผ ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐ์ ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์ ์ ํ๊ฒ ์
๋ ฅ์ ์ฒ๋ฆฌํ์ฌ ์ ๋ฌํจ
๋ชจ๋ธ (Model)
๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ญ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋์ ์ํ DAO(Data Access Object)์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ํํํ๋ DO(Data Object)๋ก ๊ตฌ์ฑ๋จ
ex) ๊ฒ์์ ์ํ ํค์๋๊ฐ ๋์ด์ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ จ๋ ์ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋ทฐ์ ์ ๋ฌ
๋ทฐ (View)
๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ๋ฉด ์์ฒด์ ์์ญ์ ๋ปํจ
์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์์๋ค์ด ์ฌ๊ธฐ์ ํฌํจ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ๊ฐ ์์์ ๋ฐฐ์นํจ
๋ทฐ์์๋ ๋ณ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ์ง ์์
ex) ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ๋ชจ๋ธ์์ ๊ฒฐ๊ณผ ์ํ ๋ฆฌ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์
๐ MVC ํจํด์ ํน์ง
์ดํ๋ฆฌ์ผ์ด์
์ ์ญํ ์ ์ธ ๊ตฌ๊ฐ์ผ๋ก ๋๋์ด ์ค๊ณํจ์ผ๋ก์จ ์๋ก ๊ฐ์ ์์กด์ฑ์ด ๋ฎ์์ง
๊ฐ ์์ญ์ด ๋
๋ฆฝ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ๊ฐ๋ฐ์ ๊ฐ ๋ถ์
๋ฐ ํ์
์ด ์ํํด์ง
ํ ์์ญ์ ์
๋ฐ์ดํธ ํ๋๋ผ๋ ๋ค๋ฅธ ๊ณณ์ ์ํฅ์ ์ฃผ์ง ์์