์๋ ํ์ธ์!๐๐โ๏ธ
์ด๋ณด๋ฅผ ์ํ (์ฆ, ๋ ์ค์ค๋ก๋ฅผ ์ํ..ใ ใ ) Django!! ์๋ฆฌ์ฆ๋ฅผ ํฌ์คํ ํ๋ ค๊ณ ํฉ๋๋ค!
๋จผ์ ์ด ์๋ฆฌ์ฆ๋ฅผ ์์ํ๊ธฐ ์ ์, ๊ฐ๋ ๋ถํฐ ํ๋์ฉ ์ดํดํด ๋ณด๋ ค๊ณ ํฉ๋๋ค.
Django๋?
Django ๊ณต์ํํ์ด์ง์์๋ ์๋์ ๊ฐ์ ๋ด์ฉ์ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ง๋๋ก, Python ์น ์ดํ๋ฆฌ์ผ์ด์
ํ๋ ์ ์ํฌ ์
๋๋ค.
๋ค๋ฅธ ํ๋ ์์ํฌ์ ๋นํด ์ฌ์ฉํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ์ธ๊ธฐ๊ฐ ๋ง๊ณ Python ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ๋๋ฌธ์ Python์ ์ ์๊ณ ์๋ ์ฌ๋์๊ฒ๋ ์ฝ๊ฒ ์์ํ ์ ์๊ฒ ์ฃ ! (Python ์ธ์ด ์์ฒด๋ ์ด๋ณด์๊ฐ ๋ฐฐ์ฐ๊ธฐ๋ ์ฝ์ต๋๋ค.)
Django๋ ๋์ ์น์ฌ์ดํธ๋ฅผ ์ํ ํ๋ ์์ํฌ์
๋๋ค.
๋์ ์น์ฌ์ดํธ๋, ์ฌ์ฉ์์์ ์ธํฐ๋ ์
์ด ๋ฒ ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์UI, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ์ด ํ์์ ์
๋๋ค. ํนํ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Postgresql, Mysql, Oracle ๊ด๊ณ์์ด Django์์ ์ ๊ณตํ๋ ๋ฐ์ธ๋ฉ์ผ๋ก ์์ฃผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ ์์ฃผ ํฐ ์ฅ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ก๊ทธ์ธ, ํ์๊ฐ์
, ์ธ์ฆ, CORS๋ฑ์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ค์๋งํด, ์น์๋น์ค๋ฅผ ํ๊ธฐ ์ํ ๊ธฐ๋ณธ์ ์ธ ํ์ ๋ค ๊ฐ์ถ๊ณ ์์ด ๊ฐ๋ฐ ์๊ฐ์ด ํฌ๊ฒ ๋จ์ถ๋๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค!!
Django๋ MTV(Model, Template, View) ํจํด์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. (MVC(Model, View, Contraller) ์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค.)
* Model : ๋ชจ๋ธ์ ์น ์ดํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํ ํ๊ณ ์กฐ์ํ๊ธฐ ์ํ ๋
ผ๋ฆฌ์ ์ธ ๊ณ์ฆ์
๋๋ค.
models.py์ ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ํฉ๋๋ค. MVC๋ชจ๋ธ์์์ Model๊ณผ ๊ฐ์ต๋๋ค.
* Template : ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์น์ฑ์ /template/*.html๋ก ์์ฑ๋ฉ๋๋ค. MVC๋ชจ๋ธ์์์ View์ ๊ฐ์ต๋๋ค.
* View: ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ์ํ ๋ก์ง์ ์ ์ํฉ๋๋ค. MVC๋ชจ๋ธ์์์ Controller์ ๊ฐ์ต๋๋ค.
๊ทธ๋ผ, ์ฌ์ฉ์์ ์๋ฒ๊ฐ์ ์์ฒญ-์๋ต ๋ก์ง์ ์ด๋ป๊ฒ ๋ ๊น์?
๋จผ์ ์ฌ์ฉ์ ์์ฒญ์ด ์ค๋ฉด,
1. Django์์ Request๋ฅผ ํ์ธํ๊ณ
2. URL conf ํ๋ผ๋ฉํฐ๋ฅผ ํ์ธํํ์
3. urls.pyํ์ผ์ ๋ณด๊ณ URL์ ๋งคํ๋ View๋ฅผ ๊ฒฐ์ ํฉ๋๋ค
4. views.pyํ์ผ์ ์ ์๋ ๋ฉ์๋๋ฅผ ์คํํ๊ณ
5. template์ ๋ ๋๋งํ์ฌ ์ต์ข
HTML ์ฝ๋๋ฅผ ์ฌ์ฉ์์๊ฒ ์๋ตํฉ๋๋ค.
๋๋ฌด ์ด๋ ค์ด๋ฐ ใ ใ ์ด์ ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋ฉด์, ์ค์ตํ๋ฉด์ ์ดํดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค :)