๋ชจ๋ธ-๋ทฐ-์ปจํธ๋กค๋ฌ(modelโviewโcontroller, MVC)๋ ์ํํธ์จ์ด ๊ณตํ์์ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ๋์์ธ ํจํด์ด๋ค. ์ด ํจํด์ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉํ๋ฉด, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ฐ์ ์์๋ ๊ทธ ์ด๋ฉด์์ ์คํ๋๋ ๋น์ฆ๋์ค ๋ก์ง์ ์๋ก ์ํฅ ์์ด ์ฝ๊ฒ ๊ณ ์น ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ค.
(์ถ์ฒ - ์ํค๋ฐฑ๊ณผ)
MVC ํจํด์ ์์ ์ค๋ช ๊ณผ ๊ฐ์ด Model, View, Controller๋ก ๊ตฌ์ฑ๋ ๋์์ธ ํจํด์ด๋ค. MVC ํจํด์ ์ธ๊ฐ์ง ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ ์ญํ ์ ๊ฐ์ง๋ค.
๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด์ด๋ค. ๋น์ง๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ ํ ๋ณ๊ฒฝ์ฌํญ์ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ์ ๋ฌํ๋ค.
๋ทฐ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์ ์ ์ธํฐํ์ด์ค(User interface)๋ฅผ ์๋ฏธํ๋ค. ๋ทฐ๋ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ํ์ํ๋ ์ญํ ์ ํ๋ค.
์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ทฐ ์ฌ์ด๋ฅผ ์ด์ด์ฃผ๋ ๋ค๋ฆฌ(bridge) ์ญํ ์ด๋ค. ๋ชจ๋ธ๊ณผ ๋ทฐ๋ก ๋ช ๋ น์ ์ ๋ฌํ๊ณ , ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ์๋ฒ์์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ค.
๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด ๋ณธ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํํ๋ ์ ์๋ค.

๋ชจ๋ ์์คํ ๋ค์ ์ ์ง ๋ณด์๊ฐ ๋ฐ์ํจ์ ๋ฐ๋ผ ๊ฐ ๊ธฐ๋ฅ๊ฐ์ ๊ฒฐํฉ๋(Coupling)๊ฐ ๋์์ง๋ค. ์ด ๊ฒฐํฉ๋๊ฐ ๋์์ง ์์คํ ์ ์ ์ง ๋ณด์ ์ ๋ง์ ์๊ฐ๊ณผ ๋น์ฉ์ ๋ฐ์์ํจ๋ค. ํ์ง๋ง ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ๊ฐ ๋ถ๋ฆฌ๋ MVC ํจํด์ ์๋ก์๊ฒ ์ํฅ์ ์ฃผ์ง ์๊ณ ์์ ์ ์ํํ๋ฏ๋ก, ์ ์ง๋ณด์๊ฐ ํธ๋ฆฌํ๋ค๋ ์ฅ์ ์ด ์๋ค.
[์ฐธ๊ณ ]
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=je_un&logNo=222035464249
https://junhyunny.github.io/information/design-pattern/mvc-pattern/[๋์] '์คํ๋ง๋ถํธ3 ์๋ฐ ๋ฐฑ์๋ ๊ฐ๋ฐ ์ ๋ฌธ'