About Django
Last updated
Last updated
์ฅ๊ณ (Django)๋ ํ์ด์ฌ์ผ๋ก ์์ฑ๋ ์คํ ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๋ก, MVC(๋ชจ๋ธ - ๋ทฐ - ์ปจํธ๋กค๋ฌ) ํจํด์ ๋ฐ๋ฅด๊ณ ์๋ค.
์น ํ์ด์ง๋ฅผ ๊ฐ๋ฐํ๋ ๊ณผ์ ์์ ๊ฒช๋ ์ด๋ ค์์ ์ค์ด๋ ๊ฒ์ด ์ฃผ ๋ชฉ์ ์ผ๋ก ํต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋, ํ ํ๋ฆฟ ํํ์ ํ์ค, ์ธ์ ๊ด๋ฆฌ, ์ฝ๋ ์ฌ์ฌ์ฉ ๋ฑ์ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ค. -์ํค๋ฐฑ๊ณผ
์ฆ, ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ํตํฉ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ ๊ฒ์ด๋ค.
MVC ํจํด์ Model - View - Controller์ ์ฝ์๋ก ๊ธฐ๋ฅ์ ๋๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ด๋ค.
Model : ๋ชจ๋ธ์ ์ด๋ค ๋์์ ์ํํ๋ ์ฝ๋๋ฅผ ๋งํ๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ด "๋ฌด์" ์ ํ ์ง ๊ฒฐ์ ํ๋ค. ๋ชจ๋ธ์ ์ํ์ ๋ณํ๊ฐ ์์ ๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ์ด๋ฅผ ํต๋ณดํ๋ค.
View : ์ฌ์ฉ์๊ฐ ๋ณผ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑํ๊ธฐ ์ํด ๋ชจ๋ธ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์ป์ด ์จ๋ค.
Controller : ๋ชจ๋ธ์ ๋ช ๋ น์ ๋ณด๋์ผ๋ก์จ ๋ชจ๋ธ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ์ฆ, ๋ชจ๋ธ์ด "์ด๋ป๊ฒ" ์ฒ๋ฆฌํ ์ง ์๋ ค์ค๋ค.
๋น์ง๋์ค ๋ก์ง๊ณผ ์ธํฐํ์ด์ค ์์๋ฅผ ๋ถ๋ฆฌ์์ผ ์๋ก ์ํฅ์์ด ๊ฐ๋ฐํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
์ฅ๊ณ ์์๋ MVC๊ธฐ๋ฐ์ MTV์ ์ฌ์ฉํ๋ค.
Model - Model
View - Template
Controller - View
Django๋ Model - Template - View ๋ก ์ด๋ฃจ์ด์ ธ์๋ค. Django๋ Controller ์ญํ ์ ์ฅ๊ณ ํ๋ ์์ํฌ ์์ฒด์์ ํ๋ค๊ณ ๋ณด๊ณ ์์ผ๋ฉฐ, MVC(Model - VIew - Controller)์ ๋ค๋ฅธ ์ฐจ์ด๋ฅผ MTV ํจํด์ผ๋ก ์ค๋ช ํ๊ณ ์๋ค.
ORM์ Object Relational Mapping์ ์ค์๋ง๋ก, ๊ฐ์ฒด(OOP)์ ๊ด๊ณ(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค)์์ ์ค์ ์ด๋ค.
์ฌ์ฉํ๋ Database ๋ฐ DB Connector ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ ๋ฐ์ดํฐ ๋งคํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ฒด์งํฅํํ๋ก ํต์ผ์์ผ, SQL ๊ตฌ์กฐ์ Database๋ฅผ OOP ๊ตฌ์กฐ์ ํํ๋ก ๋งคํ์ํค๋ ค๋ ํจ๋ฌ๋ค์์ด๋ค.
๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ด๋ค.
๊ฐ์ฒด ๋ชจ๋ธ(ํด๋์ค), ๊ด๊ณํ ๋ชจ๋ธ(ํ ์ด๋ธ) ๊ฐ์ ๋ถ์ผ์น๋ฅผ ORM์ ํตํด ํด๊ฒฐํ ์ ์๋ค.
๊ฐ์ฒด๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฌ๋ค.
๊ฐ์ฒด ์งํฅ์ ์ธ ์ฝ๋๋ก ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์ค ํ ์ ์๋ค.
์ฌ์ฌ์ฉ ๋ฐ ์ ์ง๋ณด์์ ํธ๋ฆฌ์ฑ์ด ์ฆ๊ฐ
DBMS์ ๋ํ ์ข ์์ฑ ๊ฐ์
ORM์ผ๋ก๋ง ์๋น์ค๋ฅผ ๊ตฌํํ๊ธฐ ์ด๋ ต๋ค.
ํ๋ก์์ ๊ฐ ๋ง์ ์์คํ ์์๋ ORM์ ๊ฐ์ฒด ์งํฅ์ ์ธ ์ฅ์ ์ ํ์ฉํ๊ธฐ ์ด๋ ต๋ค.
์ฅ๊ณ ๋ ORM๊ธฐ๋ฒ์ ๋ฐ๋ผ ํ ์ด๋ธ์ ํ๋์ ํด๋์ค๋ก ์ ์ํ๊ณ , ํ ์ด๋ธ์ ์ปฌ๋ผ์ ํด๋์ค์ ๋ณ์๋ก ๋งคํํ๋ค.
์ฅ๊ณ ์์๋ ์ฐ์ํ URL ๋ฐฉ์์ ์ฑํํ์ฌ URL์ ์ง๊ด์ ์ด๊ณ ์ฝ๊ฒ ํํํ ์ ์๋ค. ๋ํ ์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ ๋ณต์กํ URL๋ ํํํ ์ ์์ผ๋ฉฐ, ๊ฐ URL ํํ๋ฅผ ํ์ด์ฌ ํจ์์ 1:1๋ก ์ฐ๊ฒฐํ ์ ์๋๋ก ๋์ด์์ด ๊ฐ๋ฐ์ด ํธ๋ฆฌํ๋ฉฐ, ์ดํดํ๊ธฐ๋ ์ฝ๋ค.
์ฌ์ฉ์๊ด๋ฆฌ, ์ฌ์ฉ์ ๊ทธ๋ฃน๊ด๋ฆฌ, ์ฌ์ฉ์ ๋ณ ๊ถํ์ ๋ํ ๊ฒ ๋ฟ ์๋๋ผ, ๊ฐ๊ฐ์ ๋ชจ๋ธ ๊ฐ์ฒด์ ๋ํด์, ๋ชฉ๋ก/์ถ๊ฐ/์ญ์ /๋ณ๊ฒฝ์ ๊ธฐ๋ฅ์ด ๊ด๋ฆฌ์ ์ธํฐํ์ด์ค์์ ๋ชจ๋ ์ ๊ณตํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ข๋ค.
์ฅ๊ณ ๋ ๋ด๋ถ์ ์ผ๋ก ํ์ฅ์ด ๊ฐ๋ฅํ๊ณ ๋์์ธ์ด ์ฌ์ด ๊ฐ๋ ฅํ ํ ํ๋ฆฟ ์์คํ ์ ๊ฐ๊ณ ์๋ค. ์ด๋ฅผ ํตํด ํ๋ฉด ๋์์ธ๊ณผ ๋ก์ง์ ๋ํ ์ฝ๋ฉ์ ๋ถ๋ฆฌํ์ฌ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ์ ์งํํ ์ ์๋ค.( HTML๊ณผ ๊ฐ์ ํ ์คํธ ์ธ์ด๋ฅผ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ค.)
์ฅ๊ณ ์ ์บ์ ์์คํ ์ ์บ์์ฉ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ, ํ์ผ ์์คํ ์ค ์๋ฌด ๊ณณ์๋ ์ ์ฅํ ์ ์๋ค. ๋ํ ์บ์ ๋จ์๋ฅผ ํ์ด์ง์์๋ถํฐ ์ฌ์ดํธ ์ ์ฒด ๋๋ ํน์ ๋ทฐ์ ๊ฒฐ๊ณผ, ํ ํ๋ฆฟ์ ์ผ๋ถ ์์ญ๋ง์ ์ง์ ํ์ฌ ์ ์ฅํด ๋ ์๋ ์๋ค.
๋์ ์ธ ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ณ ํ ํ๋ฆฟ์ ํด์ํ๋ฉฐ, ๊ด๋ จ ๋ก์ง์ ์คํํ์ ํ์ด์ง๋ฅผ ์์ฑํ๋ ์ผ์ ์๋ฒ์ ์์ฒญ๋ ๋ถํ๋ฅผ ์ฃผ๋ ์์ ์ด๋ค. ๊ทธ๋์ ์บ์ ์์คํ ์ ์ฌ์ฉํ์ฌ ์์ฃผ ์ด์ฉ๋๋ ๋ด์ฉ์ ์ ์ฅํด ๋์๋ค๊ฐ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด ์ฑ๋ฅ์ ๋์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฅ๊ณ ๋ ๋์ผํ ์์ค์ฝ๋๋ฅผ ๋ค๋ฅธ ๋๋ผ์์๋ ์ฌ์ฉํ ์ ์๋๋ก ํ ์คํธ์ ๋ฒ์ญ, ๋ ์ง/์๊ฐ/์ซ์์ ํฌ๋งท, ํ์์กด์ ์ง์ ๋ฑ๊ณผ ๊ฐ์ ๋ค๊ตญ์ด ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
์ฅ๊ณ ๋ ๊ฐ๋ฐ์ ๋์์ด ๋ ์ ์๋ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ํ์ ์ผ๋ก ํ ์คํธ์ฉ ์น ์๋ฒ๋ฅผ ํฌํจํ๊ณ ์์ด์ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ํ์น ๋ฑ์ ์ฌ์ฉ ์น ์๋ฒ๊ฐ ์์ด๋ ํ ์คํธ๋ฅผ ์งํํ ์ ์๋ค. ๋ํ ๋๋ฒ๊น ๋ชจ๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์๋ฌ๋ฅผ ์ฝ๊ฒ ํ์ ํ๊ณ ํด๊ฒฐํ ์ ์๋๋ก ์์ฃผ ์์ธํ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค๋ค.
์ฅ๊ณ ์์๋ *.py
ํ์ผ์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ๊ฐ์ํ๊ณ ์๋ค๊ฐ ๋ณ๊ฒฝ์ด ๋๋ฉด ์คํ ํ์ผ์ ๋ณ๊ฒฝ ๋ด์ญ์ ๋ฐ๋ก ๋ฐ์ํ๋ค. ๊ทธ๋์ ์ฅ๊ณ ํ
์คํธ์ฉ ์น ์๋ฒ๋ฅผ ์คํ ์ค์ธ ์ํ์์ ์์ค ํ์ผ์ ์์ ํ ๊ฒฝ์ฐ์๋ ์น ์๋ฒ๋ฅผ ๋ค์ ์์ํ ํ์ ์์ด ์๋์ผ๋ก ์๋ก์ด ํ์ผ์ด ๋ฐ์๋๋ค.
๋น๊ต์ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ Python์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
์ตํ๊ธฐ ์ฌ์ด ๋งํผ ๊ฐ๋ฐ์๋๊ฐ ๋น ๋ฅด๋ฉฐ, ์ฝ๋ ์์ฑ๋๋ฅผ ๋๊ฒ ์ ์งํ ์ ์๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๊ณต๋์ด์ผํ๋ ์ฌ์ฉ์ ์ธ์ฆ, ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ฅ ๊ตฌํ์ด ๋์ด ์๋ค.(๊ธฐ๋ณธ ๋ชจ๋๋ก ์ ๊ณต๋๋ค.)
์ฑ๊ณต์ ์ธ ๋์ ์ฌ๋ก๊ฐ ์๋ค.(ex)Instagram
AWS, Google Cloud, Azure๋ฑ์์ ์ ํญ์ ์ผ๋ก ์ด๊ธฐ ๋จ๊ณ๋ถํฐ ์ง์ํ ํ๋ ์์ํฌ์ด๋ค.
๊ฐ๋ฐ ๋น์ฉ์ ํฌ๊ฒ ์ ๊ฐ์ํฌ ์ ์๋ค.
ํ๊ธ ๋ฌธ์๊ฐ ๋ง์ง์๋ค.
typeless ์ธ์ด์ ์ฝ์ ์ ๊ทธ๋๋ก ๋ณด์ ํ๊ณ ์๋ค.
์๋น์ค ์ฑ๋ฅ์ ๋ค๋ฅธ ์ธ์ด์ ํ๋ ์์ํฌ(java, js) ๋ณด๋ค ๋๋ฆฌ๋ค.