์ฃผ๋์ด ๊ฐ๋ฐ์์ ๊ฐ์ธ ๊ณต๋ถ ๊ณผ์ ์ ๊ธฐ๋กํฉ๋๋ค.
๋์์ธ ํจํด: ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ค์ ์ ๋ฆฌํด์ ์ํฉ์ ๋ฐ๋ผ ๊ฐํธํ๊ฒ ์ ์ฉํด์ ์ธ ์ ์๋ ๊ฒ์ ์ ๋ฆฌํ โ๊ท์ฝโ์ ํตํด ์ฝ๊ฒ ์ธ ์ ์๋ ํํ๋ก ๋ง๋ ๊ฒ.
์ฆ, ์ํฉ(๊ฐ๋ฐ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ค)์ ๋ฐ๋ผ ๊ฐํธํ๊ฒ ์ ์ฉ๋๋๋ก ์ ๋ฆฌํ ์ค๊ณ ๋ฐฉ๋ฒ๋ก
MVC ํจํด
MVC(๋ชจ๋ธ-๋ทฐ-์ปจํธ๋กค๋ฌ)๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋ฐ์ดํฐ ๋ฐ ๋ ผ๋ฆฌ ์ ์ด๋ฅผ ๊ตฌํํ๋๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด ๋์์ธ ํจํด
-
ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ , ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋ ๊ทธ ๊ตฌ์ฑ ์์๋ฅผ ์ธ ๊ฐ์ง์ ์ญํ ๋ก ๊ตฌ๋ถํ ํจํด
-
MVC
์ ๊ธฐ๋ฐ์ ๋ ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋์์ธ ํจํด์ผ๋กMVVM
(๋ชจ๋ธ-๋ทฐ-๋ทฐ๋ชจ๋ธ),MVP
(๋ชจ๋ธ-๋ทฐ-ํ๋ฆฌ์ ํฐ),MVW
(๋ชจ๋ธ-๋ทฐ-์์๋ฒ)๊ฐ ์๋ค
๋ชจ๋ธ Model
: ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ฆฌํ๋ค.
- ๋ชจ๋ธ์ ์ฑ์ด ํฌํจํด์ผํ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง๋ฅผ ์ ์.
- ๋ฐ์ดํฐ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ทฐ์๊ฒ ์๋ฆฌ๋ฉฐ
- ์ ๋ฐ์ดํธ๋ ๋ทฐ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ก์ง์ด ํ์ํ ๊ฒฝ์ฐ, ์ปจํธ๋กค๋ฌ์๊ฒ ์๋ฆฌ๊ธฐ๋ ํ๋ค.
- ์์) ์ผํ ๋ฆฌ์คํธ ์ฑ: ํ๋ชฉ, ๊ฐ๊ฒฉ ๋ฑ์ ๋ฐ์ดํฐ
๋ทฐ View
: ๋ ์ด์์๊ณผ ํ๋ฉด์ ์ฒ๋ฆฌํ๋ค.
- ์ฑ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ ์ ์.
์ปจํธ๋กค๋ฌ Controller
: ๋ช ๋ น์ ๋ชจ๋ธ๊ณผ ๋ทฐ ๋ถ๋ถ์ผ๋ก ๋ผ์ฐํ ํ๋ค.
- ์ฑ์ ์ฌ์ฉ์๋ก๋ถํฐ์ ์ ๋ ฅ์ ๋ํ ์๋ต.
- ๋ชจ๋ธ ๋ฐ/๋๋ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ก์ง์ ํฌํจ
- ์์) ์ผํ ๋ฆฌ์คํธ๋ ํญ๋ชฉ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๊ฒ ํด์ฃผ๋ ์
๋ ฅ ํผ๊ณผ ๋ฒํผ
- ์ด๋ฌํ ์ก์ ๋ค์ ๋ชจ๋ธ์ด ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ด๋ฏ๋ก
- ์ ๋ ฅ์ด ์ปจํธ๋กค๋ฌ์๊ฒ ์ ์ก๋๊ณ ,
- ๋ชจ๋ธ์ ์ ๋นํ๊ฒ ์ฒ๋ฆฌํ๋ค์,
- ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ทฐ๋ก ์ ์กํ๋ค
์ MVCํจํด์ ์ฌ์ฉํด์ผ ํ ๊น
- ์๋ก ๋ถ๋ฆฌ๋์ด ๊ฐ์์ ์ญํ ์ ์ง์คํ ์ ์๊ฒ๋ํ์ฌ ๊ฐ๋ฐ์ ํ๊ณ ๊ทธ๋ ๊ฒ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ ๋ค๋ฉด,
- ์ ์ง๋ณด์์ฑ,
- ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ, ๊ทธ๋ฆฌ๊ณ
- ์ ์ฐ์ฑ์ด ์ฆ๊ฐํ๊ณ ,
- ์ค๋ณต์ฝ๋ฉ์ด๋ผ๋ ๋ฌธ์ ์ ๋ํ ์ฌ๋ผ์ง๊ฒ ๋๋ค.
MVCํจํด์ ์
-
facebook์ react
- react๋ mvc ํจํด๋ง์ ์ฌ์ฉํ๋ค๊ฐ flux ํจํด๋ ์ด๋ค.(redux)
- react๋ mvc ํ๋ ์์ํฌ๋ ์๋๊ณ View๋ง ์ ๊ฒฝ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค
- ๋ค๋ฅธ ์นํ๋ ์์ํฌ์๋ ๋ฌ๋ฆฌ ajax, ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ๋ผ์ฐํ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ๊ทธ์ ๋ทฐ๋ง ์ ๊ฒฝ์ด๋ค
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ผ๋ก ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๊ดํ DOM๊ฐ์ฒด๋ง ๋ณ๊ฒฝํด์ฃผ๋ ์ฒด๊ณ, ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ฒ๋ผ ๋ชจ๋ธ ๋ณ๊ฒฝ โ ๋ทฐ๋ณ๊ฒฝ์ด ์๋๋ผ ํน์ ํจ์๋ฅผ ์คํ์ํด์ผ๋ก์จ DOM๊ฐ์ฒด๋ฅผ ๊ฐฑ์ ํ๋ค
- python์ django
- ๊ตฌ๊ธ์ AngularJS
- php์ ์ฝ๋์ด๊ทธ๋์ดํฐ
โจ tl;dr
โ๏ธ MVC ํจํด์ด๋?
- ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ , ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋, ๊ทธ ๊ตฌ์ฑ ์์๋ฅผ ์ธ ๊ฐ์ง์ ์ญํ ๋ก ๊ตฌ๋ถํ ํจํด