SQLD ์๊ฒฉ์ฆ์ ์ทจ๋ํ๊ณ ,
์๋ฐ๋ฅผ ์ตํ๊ธฐ์ ๊ธ๊ธํ๋ค๊ฐ
ํ๊ธฐ ์ํฌ๊ฒธ ์ฅ๊ณ ๋ฅผ ๊ณต๋ถํด๋ณธ๋ค.
Django์๋ ์ด๋ค ๋งค๋ ฅ์ด ์๋๊ฐ ?
๋ง์ง๋ง ํฌ์คํธ๊ฐ ํฌํธ๋ฆฌ์๋๋ฐ,
์ฅ๊ณ ๋ฅผ ํฌํธ๋ฆฌ๋ก ๊ตฌ์ฑํ ๊ฐ์ํ๊ฒฝ์ ์ค์นํ์ฌ
๊ฒฝํํด๋ดค๋ค.
SQLD ์๊ฒฉ์ฆ์ ์ทจ๋ํ๋ ๊ณผ์ ์์
์ถฉ๋ถํ SQL ์ธ์ด์ ๋ํด ์ตํ๊ณ ,
๊ทธ ๋๋ถ์ ์ฅ๊ณ ๋ฅผ ์ฌ์ฉํ์ ๋ ์ด๋ค ๋งค๋ ฅ์ด ์๋์ง
๋๋ผ์ด ๊ฒฝํ์ ํ ์ ์์๋ค.
์ฅ๊ณ ๋ฅผ ์ฌ์ฉํด๋ณด๊ณ ๊ฐ์ฅ ์๋ฟ์๋ ๊ฒฝํ์
SQL ์ธ์ด๋ฅผ ์ฌ์ฉํ์ง ์์๋ DB์ ์ํต์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด์๋ค.
ํ์์์๋ ํ ๋๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ ์ด ์ ์ด ์ ๋ง ํน๋ณํ๊ฒ ์๋ฟ์๋๋ฐ,
ORM์ ์์ฑํด๋ดค์ ๋ ํนํ ๊ทธ๋ฌํ๋ ๊ฒ ๊ฐ๋ค.
์์ปจ๋, DB์ ํน์ ํ
์ด๋ธ์์ ์ ๋ณด๋ฅผ ์กฐํํ๋ค๊ณ ๊ฐ์ ํ ๋
sql๋ฌธ์ผ๋ก ์์ฑํ๊ฒ ๋๋ฉด
Select * from tableName
์ผ๋ก ์์ฑํ๋ ๋ฌธ์ฅ์ด
className.Objects.all()
๋ก ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋ฌผ๋ก , ๋จํธ์ ์ธ ์์๊ฒ ์ง๋ง lookup์ ์ฌ์ฉํ๋ค๋ณด๋ฉด
์ฅ๊ณ ๊ฐ ์ผ๋ง๋ ํธํ๊ฒ DB์ ์ํตํ๋์ง ์ฒดํํ ์ ์๋ค.
๋ ๋ฒ์งธ ์ฅ์ ์ ์์์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ฅ๊ณ ๋ ๋ด๊ฐ ๋ง๋ ๋ชจ๋ธ์ ๋์ผ๋ก ๋ณผ ์ ์๊ฒ ํ๋ฉด์ ์ ๊ณตํ๋ค.
์ฅ๊ณ ๋ ์ ์ ์ ๋ํ ๋ชจ๋ธ์ด๋ผ๋ ์ง, ์ํผ๋ชจ๋ธ์ด๋ผ๋ ์ง
๋ํดํธ๋ก ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ฅ์ด ๋ง์๊ณ ,
๋ฆฌ์คํธ๋ผ๋ ์ง ์ค์ DB์ ๋ฐ์ดํฐ๋ค์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์
๋ด๊ฐ ์์ฑํ ๋ชจ๋ธ๋ค์ ํ์ธํ๊ณ ์ดํดํ๋๋ฐ ์๋นํ ํธํ๋ค.
DB๋ ์ํต์ ํจ์ ์์ด ์ฐธ ์ฅ์ ์ด ๋ง์ ์น๊ตฌ์๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ฝ DB๊ฐ ์ฒ์์ด๋ผ๋ฉด, ์ฅ๊ณ ๋ก ๋จผ์ ์์ํ๋ ๊ฒ์
๊ณ ๋ฏผ์ ํ๋๊ฒ ์ข๋ค๊ณ ์๊ฐํ๋ค.
์์์ ์ธ๊ธํ ๋งค๋ ฅ์ฒ๋ผ ์ฅ๊ณ ๋ SQL์ ๋ชฐ๋ผ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋ค๋ฅธ ์ธก๋ฉด์์ ์๊ฐํ๋ฉด ์ฐจ๋์ ํ๋ฐฉ์นด๋ฉ๋ผ์๋ ๊ฐ์ ๊ฒ์ด๋ค.
๋ด๊ฐ ์ฌ์ด๋๋ฏธ๋ฌ๋ฅผ ํตํด ์ฃผ์ฐจ๋ฅผ ํ ์ค ์๋๋ฐ ํ๋ฐฉ์นด๋ฉ๋ผ๋ฅผ ํ์ฉํ๋ ๊ฒ๊ณผ
์ฌ์ด๋๋ฏธ๋ฌ ์ฃผ์ฐจ๋ ํ ์ค ๋ชจ๋ฅด๋๋ฐ ํ๋ฐฉ์นด๋ฉ๋ผ๋ฅผ ํ์ฉํ๋ ๊ฒ์
๋๊ฐํ ์ํฉ์ด ๋ฐ์ํ์ ๋์ ๋์ฒ ๋ฅ๋ ฅ ์ฐจ์ด๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฅ๊ณ ์์ํ๊ธฐ
์ฐ์ , ํฌํธ๋ฆฌ์ ์ฅ๊ณ ๋ฅผ ์ค์นํ๊ธฐ ์ํด์๋
์ฝ์์ ์๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ค.
poetry add django-admin
ํฌํธ๋ฆฌ์ ์ฅ๊ณ ๋ฅผ ์ค์นํ๊ณ ๋๋ฉด
์ฅ๊ณ ์ ๋ช
๋ น์ด๋ฅผ ํฌํธ๋ฆฌ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์๋ ํฌํธ๋ฆฌ ๊ฐ์ํ๊ฒฝ์ ์
์ฅํ๋ ๊ฒ์
๋งํ์ง ์์๋ ๋น์ฐํ ์์์ด๋ค.
ํฐ๋ฏธ๋์ poetry shell์ ์
๋ ฅํด ์
์ฅํ๋ค.
๊ฐ์ํ๊ฒฝ์ ์
์ฅํ๋ค๋ฉด, ์ฅ๊ณ ์ ํ๋ก์ ํธ๋ฅผ ์์ํด๋ณด์.
djnago-admin startproject config .
.์ ํ์ฌ ํด๋๋ฅผ ์๋ฏธํ๊ณ , config๋ผ๋ ์ฅ๊ณ ํ๋ก์ ํธ๋ฅผ
์ค์นํด์ค ๊ฒ์ด๋ค.
ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด config๋ผ๋ ํจํค์ง์
manage.py๋ผ๋ ํ์ผ์ด ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด์ ๋ถํฐ ์ฐ๋ฆฌ๋ manage.py์ ์ฐ๋ฆฌ๊ฐ ํ ํ๋์ ๋ํด
์ ๋ฌํ ์์ ์ด๋ค.
python manage.py startapp appName
์ด๋ฐ ์์ผ๋ก ๋ง์ด๋ค.
์โฆ ๋ด๊ฐ ์ดํดํ ๊ฒ์ผ๋ก ์ ๋ฆฌ๋ฅผ ํ์๋ฉด
app์ด๋ผ๋ ๊ฒ์ DB์ ๊ด์ ์์๋ ํ
์ด๋ธ์ ๋ํ ๊ฒ์ ์๋ฏธํ๋ค.
๋ง์ฝ, ๋ด๊ฐ DB์ ๋ฆฌ๋ทฐ์ ๋ํ ํ
์ด๋ธ์ ์์ฑํด์ ์ฌ์ฉํ๋ค๋ฉด
python manage.py startapp reviews๊ฐ ๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ์ฅ๊ณ ๋ reviews์ ๋ํ ํจํค์ง๋ฅผ ์์ฑํด ์ค ๊ฒ์ด๊ณ
๊ทธ ํจํค์ง์์ ๋ฆฌ๋ทฐ์ ๊ดํ ๋ชจ๋ธ๋ ๋ง๋ค๊ณ
์ํ๋ ์ค์ ๋ค๋ ํ ์ ์์ ๊ฒ์ด๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ด ๋ญ์ผ
์ฅ๊ณ ๋ฅผ ์์ํ๋ฉด์ ๊ฐ์ฅ ์ค๋ฅ๊ฐ ๋ง์ด ๋ฐ์ํ๊ณ ,
ํท๊ฐ๋ ธ๋ ๋ถ๋ถ์ด ์๋ง ๋ง์ด๊ทธ๋ ์ด์
์ด ์๋๊น ์ถ๋ค.
์์์ ์ฑ์ ๋ง๋ค์ด ๋ชจ๋ธ์ ์ค์ ํ๊ณ ๋๋ฉด
๋ง์ด๊ทธ๋ ์ด์
์ ํด์ค์ผํ๋๋ฐ
์ ๋ง์ด๊ทธ๋ ์ด์
์ ํด์ผํ๋ ๊ฒ์ธ์ง
์ด๊ฒ ๋ฌด์จ ํ๋์ ์๋ฏธํ๋์ง ์ ๋ฟ์ง ์์๋ค.
๊ฒฐ๊ตญ ๋ณธ์ธ์๊ฒ ๊ฐ์ฅ ์ดํดํ๊ธฐ ์ฝ๋๋ก ์ ๋ฆฌ๋ฅผ ํด๋ดค๋๋ฐ
๋ง์ด๊ทธ๋ ์ด์
์ด๋ผ๋ ๊ฒ์ ์ฅ๊ณ ์๊ฒ โ๋ด ๋ชจ๋ธ์ด ์ด๋ ๊ฒ ๋ณ๊ฒฝ๋์ด !โ
ํน์ โ๋ด ๋ชจ๋ธ์ด ์ด๋ ๊ฒ ์์ฑ๋์ด! โ ๋ผ๊ณ
๋ณ๊ฒฝ ์ด๋ ฅ์ ๋ํด ์๋ฆฌ๋ ๊ณผ์ ์ธ ์
์ด๋ค.
์ฅ๊ณ ๋ ๋ชจ๋ธ ํด๋์ค์ ๋ณ๊ฒฝ์ฌํญ์ ๊ฐ์งํ๊ณ
ํด๋น ๋ด์น์ ๋ง์ด๊ทธ๋ ์ด์
ํ์ผ๋ก ๊ธฐ๋กํ๋๋ฐ,
์ด ๋ง์ด๊ทธ๋ ์ด์
ํ์ผ์ DB ์คํค๋ง๋ฅผ ์
๋ฐ์ดํธํ๋๋ฐ ํ์ํ
๋ช
๋ น๋ค์ ๋ด๊ณ ์๋ค.
์ฅ๊ณ ๋ ์ด ๋ง์ด๊ทธ๋ ์ด์
ํ์ผ๋ค์ ์์ฐจ์ ์ผ๋ก ์คํํด
DB ์คํค๋ง๋ฅผ ์
๋ฐ์ดํธํ๊ณ ๋ชจ๋ธ์ ๋ณ๊ฒฝ ์ฌํญ์ด
DB์ ๋ฐ์๋ผ ์ฑ๊ณผ DB ๊ฐ์ ์ผ๊ฐ์ฑ์ ์ ์งํ๋๋ก ๋๋๋ค.
์ ์ธ๊ธํ ๋ด์ฉ์ฒ๋ผ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ํ์ผ์ ๊ธฐ๋กํ๊ธฐ ๋๋ฌธ์
๋ณ๊ฒฝ ์ด๋ ฅ์ ์ถ์ ํ ์๋ ์๊ณ , ๋กค๋ฐฑ์ ์ํฌ ์๋ ์๋ค.
๋ง์ด๊ทธ๋ ์ด์
์ ์ฝ๋์ ๋ฒ์ ๊ด๋ฆฌ์๋ ์ฌ์ฉ๋๊ณ
ํ์
์ ์คํค๋ง๋ฅผ ๋๊ธฐํ ์ํฌ ๋ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
Python manage.py makemigration # ๋ง์ด๊ทธ๋ ์ด์
์์ฑ
Python manage.py migration # ๋ง์ด๊ทธ๋ ์ด์
์คํ