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