MVT
๐ก MVC
์ฐ์ MVT ํจํด์ ์๊ธฐ์ MVCํจํด์ ์์๋ณด์๋ค.
MVC ํจํด์ด๋?
๋์์ธ ํจํด์ค์ ํ๋๋ก ๊ตฌ์ฑ ์์๋ฅผ Model, View, Controller๋ก ๊ตฌ์ฑํ๋ ํจํด
๊ฐ๊ฐ์ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ์์๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์์ผํ๋ค.
1. Model
- ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ก์ง ๋ํ ๊ฐ์ง๊ณ ์๋ค.
2. View
ํ๋ฉด์ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฌผ์ ๋ณด์ฌ์ฃผ๋ ์ญํ์ํ๋ค.
์ธํฐํ์ด์ค ๊ธฐ๋ฅ์ ์ํํ๋ค.
3. Controller
Model ๊ณผ View์ ์ฐ๊ฒฐ๊ณ ๋ฆฌ
user์ request์ ๋ฐ๋ผ ๋ชจ๋ธ์๊ฒ ์ ์ ํ ๋ก์ง์ ์๋ํ๋๋ก ์๋ ค์ฃผ๊ณ ,
๋ชจ๋ธ์ด response ํ ๋ค์, ๊ทธ ์๋ต์ View์๊ฒ ์ ๋ฌํ๊ฒ ํด์ฃผ๋ ์ค๊ฐ ๋ค๋ฆฌ ์ญํ.
๐ก MVT
MVT๋ Django์ ๋์์ธ ํจํด์ผ๋ก MVC์ ๋น์ทํ์ง๋ง ๊ณ ์ ์ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
1. Model
MVC ํจํด์ Model์ ๋์๋๋ฉฐ DB์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ค.
๋ชจ๋ธ์ ํด๋์ค๋ก ์ ์๋๋ฉฐ ํ๋์ ํด๋์ค๊ฐ ํ๋์ DB Table์ด๋ค.
์๋ DB๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์๋ SQL์ ์กฐ์ํด์ผํ์ง๋ง
django๋ ORM์ด ๋ด์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ด์ฌ ์ฝ๋๋ก ์กฐ์ ๊ฐ๋ฅํ๋ค.
2. Template
MVC์ View์ ํด๋นํ๋ ๋ด์ฉ.
User์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด์ ์๋ฏธ.
์์ฒด์ ์ธ Django Template ๋ฌธ๋ฒ์ ์ง์.
html ํ์ผ ๋ด์์ context๋ก ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉ ๊ฐ๋ฅ.
๋ณต์กํ ๋ฌธ์์ด ์กฐํฉ์ ๋์์ค๋ค.
html์ ํ ํ๋ฆฟ์ด๋ผ๊ณ ์นญํ๋ค.
3. View
MVC ํจํด์ Controller์ ํด๋นํ๋ค.
HTTP ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํจ์
์์ฒญ์ ๋ฐ๋ผ ์ ์ ํ ๋ก์ง์ ์ํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ ํ๋ฆฟ์ผ๋ก ๋ ๋๋งํ๋ฉฐ ์๋ต.
4. URL Conf(URL ์ค๊ณ)
django์๋ง ์๋ค.
URLํจํด์ ์ ์ํ์ฌ ํด๋นURL๊ณผ View๋ฅผ ๋งคํํ๋ ๋จ๊ณ
ํด๋ผ์ด์ธํธ๋ก ๋ถํฐ ๋ฐ์ ์์ฒญ์ ๋ค์ด์๋ URL์ด url.pyํ์ผ์ ์ ์๋ URLํจํด๊ณผ ๋งค์นญ๋๋์ง๋ฅผ ๋ถ์ํ๋ค.
๐ก ํ๋ฆ
๏ผ. ์ ์ ๊ฐ ํน์ url๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค.
๏ผ. URLConf๋ฅผ ํตํด ํด๋น url๊ณผ ๋งคํ๋ view๋ฅผ ํธ์ถํฉ๋๋ค.
๏ผ. ํธ์ถ๋ view๋ ์์ฒญ์ ๋ฐ๋ผ ์ ์ ํ ๋ก์ง์ ์ํํ๊ณ , ๊ทธ ๊ณผ์ ์์ model์๊ฒ CRUD๋ฅผ ์ง์ํฉ๋๋ค.
๏ผ. model์ ORM์ ํตํด DB์ ์ํตํ๋ฉฐ CRUD๋ฅผ ์ํํฉ๋๋ค.
๏ผ. ๊ทธ ํ view๋ ์ง์ ๋ Template์ ๋ ๋๋งํ๊ณ
๏ผ. ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์๋ต์ผ๋ก ๋ฐํํฉ๋๋ค.