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

์ด ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ, ์ ํ์ฑ ํ์ธ ๋ฑ ์์ ์ ์ํ ๋ฐ์ดํฐ ๋ฐ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ธ์ ๋ทฐ (๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํจ) ๋ฐ ์ปจํธ๋กค๋ฌ(์ฌ์ฉ์ ์ํธ ์์ฉ ์ง์ ์ด ์์)์ ๋ ๋ฆฝ์ ์ด๋ฉฐ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ชจ๋ธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ฌ ์์ฒญ์ ์๋ตํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ถ๋๋ฉฐ "๊ด์ฐฐ์"์ ๋ํ ์๋ฆผ์ด ๋ด์ฅ๋ ์ ์์ต๋๋ค. ๋ชจ๋ธ์ ์๊ฐ์ ํํ๊ณผ์ ๋ ๋ฆฝ์ฑ์ผ๋ก ์ธํด ํ๋์ "๋ชจ๋ธ"์ ๋ํด ์ฌ๋ฌ ๊ฐ์ง ๋ค๋ฅธ ํํ์ ๊ฐ์ง ์ ์์ต๋๋ค .
๋ทฐ๋ ๋ชจ๋ธ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉ์์๊ฒ ๋ณด๋ด๋ ์ญํ ์ ํฉ๋๋ค. ๋ณด๊ธฐ๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ฒ๋ฆฌํ์ง ์์ต๋๋ค.
์ปจํธ๋กค๋ฌ๋ ์ฌ์ฉ์์ ์์คํ ๊ฐ์ "ํต์ "์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ์์์ ์์คํ ์ผ๋ก ๋๋ ๊ทธ ๋ฐ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ๊ณ ์ง์ํฉ๋๋ค. ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ์์ ์ ๊ตฌํํฉ๋๋ค.
์ด ๋ชจ๋ธ์ด ์์ญ ๋ ์ ๊ฑธ์ณ ์กฐ๊ธ์ฉ ์งํํ๋ค๋ ์ฌ์ค์๋ ํน์ ํ ์ด๋ ค์์ด ์์ต๋๋ค. ์ฆ, ์ด๋ฆ์ ๋์ผํ๊ฒ ์ ์ง๋์์ง๋ง ๋ถํ์ ๋ชฉ์ ์ด ๋ณ๊ฒฝ๋๊ธฐ ์์ํ์ต๋๋ค.
์น์ MVC ์ํคํ ์ฒ
MVC ๋์์ธ ํจํด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋ก ๋ค๋ฅธ ๋์์ ๋ํ ์ฑ ์์ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค.
๋ชจ๋ธโ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง.
๋ณด๋คโ ์ง์๋๋ ๋ชจ๋ ํ์์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ ์ด ์ฅ์น- ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ ์ ํ ๋ฆฌ์์ค๋ฅผ ํธ์ถํฉ๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ ์ธ ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ๋๋๋ฉฐ ๊ฐ ๊ตฌ์ฑ ์์๋ ์๋ก ๋ค๋ฅธ ์์ ์ ๋ด๋นํฉ๋๋ค. ์์ ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ-์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ ์์๋ฅผ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ ์ด ์ฅ์น
์ฌ์ฉ์๋ ๋ธ๋ผ์ฐ์ ์์ ํ์ด์ง์ ๋ค์ํ ์์๋ฅผ ํด๋ฆญํ๊ณ ๊ทธ ๊ฒฐ๊ณผ ๋ธ๋ผ์ฐ์ ๋ GET, POST ๋ฑ ๋ค์ํ HTTP ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ปจํธ๋กค๋ฌ๋ ํ์ด์ง ๋ด์์ ์๋ํ๋ ๋ธ๋ผ์ฐ์ ๋ฐ JS ์ฝ๋๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์ปจํธ๋กค๋ฌ์ ์ฃผ์ ๊ธฐ๋ฅ์ ํ์ํ ๊ฐ์ฒด์ ๋ํ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ์ฌ ์ฌ์ฉ์๊ฐ ์ง์ ํ ์์ ์ ์ํํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ปจํธ๋กค๋ฌ๋ ์์ ์ ์ ํฉํ ๋ชจ๋ธ์ ํธ์ถํ๊ณ ์ ์ ํ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
๋ชจ๋ธ
๋์ ์๋ฏธ์์ ๋ชจ๋ธ์ ๋ฐ์ดํฐ ์์ ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋ฐ ๊ท์น์ด๋ฉฐ ํจ๊ป ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ๋ ํญ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ํ๋ ๊ฐ์ฒด์ ๋ชจ๋ธ์ ๊ตฌ์ถํ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
์ฑ ์ ํ๋งคํ๋ ์จ๋ผ์ธ ์์ ์ด ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ฌ๋์ ์์ฉ ํ๋ก๊ทธ๋จ ์ฌ์ฉ์์ผ ๋ฟ์ ๋๊น ์๋๋ฉด ์ฑ ์ ์ ์์ด๊ธฐ๋ ํฉ๋๊น? ์ด๋ฌํ ์ค์ํ ์ง๋ฌธ์ ๋ชจ๋ธ ์ค๊ณ ์ค์ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
๋ํ ๊ท์น ์งํฉ์ด ์์ต๋๋ค. ์ํํ ์ ์๋ ์์ , ์ํํ ์ ์๋ ์์ , ํ์ฉ๋๋ ๋ฐ์ดํฐ ์งํฉ ๋ฐ ํ์ฉ๋์ง ์๋ ๋ฐ์ดํฐ ์งํฉ์ ๋๋ค. ์๊ฐ ์์ด ์ฑ ์ด ์กด์ฌํ ์ ์์๊น? ๊ทธ๋ฆฌ๊ณ ์ฑ ์ด์๋ ์ ์? ์ฌ์ฉ์์ ์๋ ์์ผ์ด 300๋ ๋ฑ์ผ ์ ์์ต๋๊น?
์ด ๋ชจ๋ธ์ ์ฌ์ฉ์๊ฐ ์์ฒญํ ๋ฐ์ดํฐ(๋ฉ์์ง, ์ฑ ํ์ด์ง, ์ฌ์ง ๋ฑ)์ ๋ณด๊ธฐ๋ฅผ ์ปจํธ๋กค๋ฌ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ค๋ ๋ฐฉ์์ ๊ด๊ณ์์ด ๋์ผํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ธฐ ์ํด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
๋ชจ๋ธ์๋ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ๊ณ ์๋ ๋ฌธ์ (ํฌ๋ผ, ์์ , ์ํ ๋ฑ)๋ฅผ ํด๊ฒฐํ๋ ๋ก์ง์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ปจํธ๋กค๋ฌ์๋ ๋๋ถ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด์ ๋ํ ์กฐ์ง์ ๋ ผ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค(ํ๋ก์ ํธ ๊ด๋ฆฌ์์ ๋ง์ฐฌ๊ฐ์ง๋ก).
๋ณด๋ค
๋ณด๊ธฐ๋ ๋ชจ๋ธ์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ๋ก ์ฑ์์ง ํ ํ๋ฆฟ์ด ๋ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๋ณด๊ธฐ๊ฐ ์์ ์ ์์ผ๋ฉฐ ์ปจํธ๋กค๋ฌ๋ ํ์ฌ ์ํฉ์ ๊ฐ์ฅ ์ ํฉํ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ปจํธ๋กค๋ฌ, ๋ชจ๋ธ ๋ฐ ๋ณด๊ธฐ ์ธํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ปจํธ๋กค๋ฌ๋ ๋ฐฑ์๋์๋ง ์์ ์ ์์ง๋ง ๋ ผ๋ฆฌ๊ฐ ํ๋ฐํธ์๋์๋ ๋ถ์ฐ๋๋ ๊ฒฝ์ฐ ์ฌ๋ฌ ์ปจํธ๋กค๋ฌ์ ๋ณํ์ด ์์ ์๋ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ข์ ์๋ ๋ชจ๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.
์น์์ MVC ์์
์ฑ ์ ํ๋งคํ ์จ๋ผ์ธ ์์ ์ ๊ฐ๋ฐํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ์ฉ์๋ ๋ค์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ฑ ๋ณด๊ธฐ, ๋ฑ๋ก, ๊ตฌ๋งค, ํ์ฌ ์ฃผ๋ฌธ์ ํญ๋ชฉ ์ถ๊ฐ, ์ข์ํ๋ ์ฑ ํ์ ๋ฐ ๊ตฌ๋งค.
์ ํ๋ฆฌ์ผ์ด์ ์๋ ๋ชจ๋ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ๋ชจ๋ธ์ด ์์ด์ผ ํฉ๋๋ค. ๋ํ ๋ชจ๋ ์ฌ์ฉ์ ์์ ์ ์ฒ๋ฆฌํ๊ณ ๋น์ฆ๋์ค ๋ก์ง์์ ๋ฉ์๋ ํธ์ถ๋ก ์ ํํ๋ ์ปจํธ๋กค๋ฌ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ๋์ ์ปจํธ๋กค๋ฌ ๋ฉ์๋๋ ์ฌ๋ฌ ๋ค๋ฅธ ๋ชจ๋ธ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
๋ํ ์ฑ ๋ชฉ๋ก, ํ ๊ถ์ ์ฑ ์ ๋ํ ์ ๋ณด, ์ฅ๋ฐ๊ตฌ๋, ์ฃผ๋ฌธ ๋ชฉ๋ก๊ณผ ๊ฐ์ ์ผ๋ จ์ ๋ณด๊ธฐ๊ฐ ํ์ํฉ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ ํ์ด์ง๋ ์ค์ ๋ก ๋ชจ๋ธ์ ํน์ ์ธก๋ฉด์ ์ฌ์ฉ์์๊ฒ ํ์ํ๋ ๋ณ๋์ ๋ณด๊ธฐ์ ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ๋ชฉ์ ๋ณด๊ธฐ ์ํด ์์ ์ถ์ฒ ๋์ ๋ชฉ๋ก์ ์ด๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ ์ฒด ์์ ์์๋ 6๋จ๊ณ ํ์์ผ๋ก ์ค๋ช ํ ์ ์์ต๋๋ค.

๋จ๊ณ:
- ์ฌ์ฉ์๊ฐ "๊ถ์ฅ" ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ /books/recommendations๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค.
- ์ปจํธ๋กค๋ฌ๊ฐ ์์ฒญ์ ํ์ธํฉ๋๋ค . ์ฌ์ฉ์๋ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค. ๋๋ ๋ก๊ทธ์ธํ์ง ์์ ์ฌ์ฉ์๋ฅผ ์ํ ์ฑ ๋ชจ์์ด ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ์ ํธ์ถํ๊ณ ์ฌ์ฉ์ N์๊ฒ ์ถ์ฒ๋ ์ฑ ๋ชฉ๋ก์ ๋ฐํํ๋๋ก ์์ฒญํฉ๋๋ค.
- ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ๊ณ ๊ฑฐ๊ธฐ์์ ์ฑ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฒ์ํฉ๋๋ค. ํ์ฌ ์ธ๊ธฐ ์๋ ์ฑ , ์ฌ์ฉ์๊ฐ ๊ตฌ์ ํ ์ฑ , ์น๊ตฌ๊ฐ ๊ตฌ์ ํ ์ฑ , ์์๋ฆฌ์คํธ์ ์๋ ์ฑ . ์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ์ 10๊ถ์ ์ถ์ฒ ๋์ ๋ชฉ๋ก์ ์์ฑํ๊ณ ์ปจํธ๋กค๋ฌ์ ๋ฐํํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ๋ ์ถ์ฒ๋์ ๋ชฉ๋ก์ ๋ฐ์ ์ดํด๋ด ๋๋ค. ์ด ๋จ๊ณ์์ ์ปจํธ๋กค๋ฌ๊ฐ ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๋ค! ์ฑ ์ด ๊ฑฐ์ ์๊ฑฐ๋ ๋ชฉ๋ก์ด ์์ ํ ๋น์ด ์์ผ๋ฉด ๋ก๊ทธ์ธํ์ง ์์ ์ฌ์ฉ์์๊ฒ ์ฑ ๋ชฉ๋ก์ ์์ฒญํฉ๋๋ค. ํ์ฌ ์งํ ์ค์ธ ํ๋ก๋ชจ์ ์ด ์๋ ๊ฒฝ์ฐ ์ปจํธ๋กค๋ฌ๋ ๋ชฉ๋ก์ ํ๋ก๋ชจ์ ๋์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ์ปจํธ๋กค๋ฌ๋ ์ฌ์ฉ์์๊ฒ ํ์ํ ํ์ด์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ค๋ฅ ํ์ด์ง, ์ฑ ๋ชฉ๋ก์ด ์๋ ํ์ด์ง, ์ฌ์ฉ์๊ฐ ๋ฐฑ๋ง ๋ฒ์งธ ๋ฐฉ๋ฌธ์๊ฐ ๋์์์ ์ถํํ๋ ํ์ด์ง์ผ ์ ์์ต๋๋ค.
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ปจํธ๋กค๋ฌ๊ฐ ์ ํํ ํ์ด์ง( ๋ณด๊ธฐ )๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ํ ๋ฐ์ดํฐ(์ฌ์ฉ์ ์ด๋ฆ, ๋์ ๋ชฉ๋ก)๋ก ์ฑ์์ง๊ณ ํด๋ผ์ด์ธํธ๋ก ์ด๋ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ํ์ด์ง๋ฅผ ์์ ํ์ฌ ์ฌ์ฉ์์๊ฒ ํ์ํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ด์ ์ ๋ฌด์์ ๋๊น?
MVC ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์ป์ ์ ์๋ ๊ฐ์ฅ ํ์คํ ์ด์ ์ ํ๋ ์ ํ ์ด์ ๋ ผ๋ฆฌ(์ฌ์ฉ์ ์ธํฐํ์ด์ค)์ ์์ฉ ํ๋ก๊ทธ๋จ ๋ ผ๋ฆฌ(๋ฐฑ์๋)๊ฐ ๋ช ํํ๊ฒ ๋ถ๋ฆฌ๋๋ค๋ ๊ฒ์ ๋๋ค.
๋ ๋ฒ์งธ ์ด์ ์ ์๋ฒ ๋ถ๋ถ์ ์ค๋งํธ ๋ชจ๋ธ( ์คํ์ )๊ณผ ์ปจํธ๋กค๋ฌ( ๊ฒฐ์ ์ผํฐ )์ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋ ๊ฒ์ ๋๋ค.
์ด์ ์์ ์์๋ ์ปจํธ๋กค๋ฌ๊ฐ ๋ชจ๋ธ์์ ๋น ์ถ์ฒ ๋์ ๋ชฉ๋ก์ ์์ ํ๊ณ ์ด๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๊ฒฐ์ ํ ์ ์๋ ์๊ฐ์ด ์์์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ด ๋ ผ๋ฆฌ๋ ๋ชจ๋ธ์ ์ง์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
์ฒซ์งธ, ์ถ์ฒ ๋์๋ฅผ ์์ฒญํ ๋ ๋ชจ๋ธ์ ๋ชฉ๋ก์ด ๋น์ด ์๋ ๊ฒฝ์ฐ ์ํํ ์์ ์ ๊ฒฐ์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ์ ์์น์ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ ์ง๊ธ ์งํ ์ค์ธ ํ๋ก๋ชจ์ ์ด ์๋ ๊ฒฝ์ฐ ์ํํ ์์ ๊ณผ ๋ ๋ค์ํ ์ต์ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์ ๊ด๋ฆฌ์๋ ํ๋ก๋ชจ์ ์์ด ์ฌ์ฉ์ ํ์ด์ง๊ฐ ์ด๋ป๊ฒ ๋ณด์ด๋์ง ๋๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ ํ์ฌ ํ๋ก๋ชจ์ ์ด ์์ง๋ง ํฅํ ํ๋ก๋ชจ์ ์ด ์ด๋ป๊ฒ ํ์๋๋์ง ํ์ธํ๊ณ ์ถ์ดํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋น์ฆ๋์ค ๋ก์ง(๋ชจ๋ธ)์์ ์์ฌ ๊ฒฐ์ ์ผํฐ(์ปจํธ๋กค๋ฌ)๋ฅผ ๋ถ๋ฆฌํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์์ ๋ทฐ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ ์ธ์๋ MVC ๊ฐ๋ ์ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก์ฑ์ ํฌ๊ฒ ์ค์ ๋๋ค. ์ฝ๋๊ฐ ํจ์ฌ ๋ ๊ตฌ์กฐํ๋์ด ์๋ฃจ์ ์ ์ ์ง ๊ด๋ฆฌ, ํ ์คํธ ๋ฐ ์ฌ์ฌ์ฉํ๊ธฐ๊ฐ ๋ ์ฌ์์ก์ต๋๋ค.
MVC์ ๊ฐ๋ ์ ์ดํดํ๋ฉด ๊ฐ๋ฐ์๋ก์ ๋์ ๋ชฉ๋ก ์ ๋ ฌ์ ์ถ๊ฐํด์ผ ํ๋ ์์น๋ฅผ ์ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์์ค์์.
- ๋น์ฆ๋์ค ๋ก์ง(๋ชจ๋ธ) ์์ค์์.
- ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ์์ค(์ปจํธ๋กค๋ฌ)์์.
- ๋ณด๊ธฐ์์ - ํด๋ผ์ด์ธํธ ์ธก์์.
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์์ฌํ์ ์ง๋ฌธ์ด ์๋๋๋ค. ์ง๊ธ ๋ฐ๋ก ์ฑ ๋ชฉ๋ก์ ์ ๋ ฌํ๊ธฐ ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ผ ํ๋ ์์น์ ์ด์ ์ ๋ํด ์๊ฐํด ๋ณด์ญ์์ค.
ํด๋์ MVC ๋ชจ๋ธ
MVC ๊ตฌ์ฑ ์์ ๊ฐ์ ์ํธ ์์ฉ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ค๋ฅด๊ฒ ๊ตฌํ๋ฉ๋๋ค. ์ด๋ ์น ์ฑ์ด ์๋ช ์ด ์งง๊ณ ํ๋์ ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ข ๋ฃํ๋ ๋ฐ๋ฉด ๋ชจ๋ฐ์ผ ์ฑ์ ๋ค์ ์์ํ์ง ์๊ณ ๋ง์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ฐ์ ์ผ๋ก "์๋" ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ "ํ์ฑ" ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค. ๋ฅ๋ ๋ชจ๋ธ์ ์๋ ๋ชจ๋ธ๊ณผ ๋ฌ๋ฆฌ ๊ตฌ๋ ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ ํ์ํ์ง ์์ต๋๋ค.
๋ค์ํ ๋ชจ๋ธ์์ ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ (ํ์ฑ ๋ชจ๋ธ)์ ์ด๋ฒคํธ ๋ฐ ์ด๋ฒคํธ ๊ตฌ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ทฐ( view )๊ฐ ๋ชจ๋ธ ๋ณ๊ฒฝ ์ฌํญ์ ๊ตฌ๋ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด(์: ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญ) ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถ๋ฉ๋๋ค . ๋ํ ๋ชจ๋ธ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ๋ช ๋ น์ ์ ๊ณตํฉ๋๋ค.
์ผ๋ถ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ๋ชจ๋ธ์ ์ด ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ํ ์ด๋ฒคํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ ๋ชจ๋ ๋ณด๊ธฐ(์ด ํน์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ค์ํจ)๋ ์ด ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ ํด๋น ์ธํฐํ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ํฉ์ด ์ฝ๊ฐ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฃผ์ ๊ธฐ์ ์ ์ฐจ์ด์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ ์ฃผ๋๋ก ์๋ฒ ์ธก ๋ฉ์์ง๋ฅผ ์์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค .
๋ฐ๋ผ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํธ๋กค๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ทฐ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ง ์์ง๋ง ํด๋ผ์ด์ธํธ์๊ฒ ๊ธฐ์ ์ ์ผ๋ก ์๋ก์ด ๋ทฐ ๋๋ ์๋ก์ด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ธ ์ ํ์ด์ง๋ฅผ ์ ๊ณตํฉ๋๋ค(ํ ํ์ด์ง๊ฐ ๋ค๋ฅธ ํ์ด์ง์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ). .
ํ์ฌ ์ด ๋ฌธ์ ๋ ๋ค์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๋ถ๋ถ์ ์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค.
- ์ค์ํ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์ ๊ธฐ์ ์ผ๋ก ์๋ฒ๋ฅผ ํด๋งํฉ๋๋ค(1๋ถ์ ํ ๋ฒ ์ด์).
- WebSocket์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ ๋ฉ์์ง๋ฅผ ๊ตฌ๋ ํ ์ ์์ต๋๋ค.
- ์๋ฒ ์ธก์ ์น ํธ์ ์๋ฆผ.
- HTTP/2 ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉด ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ฉ์์ง ์ ์ก์ ์์ํ ์ ์์ต๋๋ค.
GO TO FULL VERSION