๐Django
: ๋ณด์์ฐ์, ์ ์ง๋ณด์๊ฐ ํธ๋ฆฌํ ์น์ฌ์ดํธ๋ฅผ ์ ์ํ๊ฒ ๊ฐ๋ฐํ๋๋ก ๋์์ ์ฃผ๋ ํ์ด์ฌ๊ธฐ๋ฐ์ ์น ํ๋ ์์ํฌ
๐ Django Workflow
Client : ์น ๋ธ๋ผ์ฐ์ ๋ฐ ๋ชจ๋ฐ์ผ
- Client๋ฅผ ์ด์ฉํ์ฌ ์ง์ server์ ์์ฒญ์ ๋ณด๋ด Django๋ก ์์ฑํ application code๋ฅผ ์คํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์์ฑํ๊ณ , ์์ ํ๊ณ ์ญ์ ํ๋ค.
URLconf(urls.py) : HTTP์์ฒญ์ ๋ถ์
View(view.py) : ๋น์ฆ๋์ค ๋ก์ง / ์์ฒญ์ ์ฒ๋ฆฌ
Model(models.py) : ๋ฒ์ญ๊ฐ ์ฌ์ง / ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์
ORM : MYSQL๊ณผ ํ์ด์ฌ์ ์ํต์ ๋์์ค
- ์ ์ ์ ๊ณ์ ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ด๋ฆฌํ๋ ์์ ํ ๋ฐฉ๋ฒ์ ์ ๊ณต
- ์ฌ์ฌ์ฉํ๊ธฐ ์ข๊ฒํ๋ ๋์์ธ ์์น๋ค๊ณผ ํจํด๋ค์ ์ด์ฉํ์ฌ ์์ฑ
- ์น ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ URL๊ณผ POST ๋ฐ์ดํฐ ๋๋ GET ๋ฐ์ดํฐ์ ์ ๋ณด์ ๊ธฐ๋ฐํ์ฌ ์๊ตฌ์ฌํญ์ ์์๋
- ๊ทธ ๋ค์ ๋ฌด์์ด ํ์ํ ์ง์ ๋ฐ๋ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๊ณ , ๋๋ ํ์ํ ๋ค๋ฅธ ์์
๋ค์ ์ํ
- ์น ์ดํ๋ฆฌ์ผ์ด์
์ ์น ๋ธ๋ผ์ฐ์ ์ ์๋ต(Response)์ ๋ฐํํ๋๋ฐ, ์ฃผ๋ก ๋์ ์ธ HTML ํ์ด์ง๋ฅผ ์์ฑํ๋ฉด์ ์๋ต
MVT(Model View Template)
URLs(HTTP์์ฒญ์ ๋ถ์)
- ๋จ์ผ ํจ์๋ฅผ ํตํด ๋ชจ๋ URL ์์ฒญ์ฒ๋ฆฌ
- ๋ถ๋ฆฌ๋ ๋ทฐ ํจ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ์ ์ง๋ณด์ํ๊ธฐ ์ข์
- URL mapper(urls.py๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ์ ์ฅ๋์ด์์)๋ ์์ฒญ URL์ ๊ธฐ์ค์ผ๋ก HTTP ์์ฒญ์ ์ ์ ํ view๋ก ๋ณด๋ด๋ฉฐ URL์ ๋ํ๋๋ ํน์ ํ ๋ฌธ์์ด์ด๋ ์ซ์์ ํจํด์ ์ผ์น์์ผ ๋ฐ์ดํฐ๋ก์ view ํจ์์ ์
View(๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๊ฒ ์ ์ ์๊ฒ ๋ณด์ฌ์ค)
- HTTP ์์ฒญ์ ์์ / HTTP ์๋ต์ ๋ฐํ
- Model์ ํตํด ์์ฒญ์ ์ถฉ์กฑ์ํค๋๋ฐ ํ์ํ ๋ฐ์ดํฐ์ ์ ๊ทผ
- Template์๊ฒ ์๋ต์ ์์ ์ค์ ์ ๋งก๊น
Models (์์ ํ๊ฒ ๋ฐ์ดํฐ ์ ์ฅ)
- ์์ฉํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ / ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ก์ ๊ด๋ฆฌ(์ถ๊ฐ, ์์ , ์ญ์ ) / ์ฟผ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ํ์ด์ฌ ๊ฐ์ฒด
Templates (์ฌ์ฉ์์ ์
๋ ฅ๊ณผ ์ด๋ฒคํธ์ ๋ฐ์ํ์ฌ Model๊ณผ View๋ฅผ ์
๋ฐ์ดํธ)
- ํ์ผ์ ๊ตฌ์กฐ๋ ๋ ์ด์์์ ์ ์ํ๊ณ (์: HTML ํ์ด์ง -> ๊ผญ HTMLํ์ผ์ผ ํ์๋ x), ์ค์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋ ์ด์คํ๋๋ฅผ ๊ฐ์ง ํ
์คํธ ํ์ผ
- View๋ HTML ํฌํ๋ฆฟ์ ์ด์ฉํ์ฌ ๋์ ์ผ๋ก HTML ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ Model์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ก ์ฑ์๋ฃ์
https://aws.amazon.com/ko/what-is/api/
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction