Core Files (ํต์ฌ ํ์ผ)
๊ฐ ํ์ผ์ Django ํ๋ก์ ํธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ํ์ฑํ๋ฉฐ, ์๋์์ ์์ธํ ์ค๋ช
ํฉ๋๋ค.
ํต์ฌ ํ์ผ ๋ชฉ๋ก
ํ์ผ | ์ค๋ช
|
manage.py | ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐ ๋ช
๋ น์ด ์คํ |
settings.py | ํ๋ก์ ํธ ์ค์ |
urls.py | URL ๋ผ์ฐํ
|
wsgi.py | WSGI ์น ์๋ฒ ์ฐ๋ |
asgi.py | ASGI ์๋ฒ ์ฐ๋ |
graph TD; M["manage.py<br/>(ํ๋ก์ ํธ ๊ด๋ฆฌ)"] --> S["settings.py<br/>(์ ์ญ ์ค์ )"]; M --> U["urls.py<br/>(URL ๋ผ์ฐํ )"]; M --> W["wsgi.py<br/>(๋๊ธฐ ์น์๋ฒ ์ฐ๋)"]; M --> A["asgi.py<br/>(๋น๋๊ธฐ ์๋ฒ ์ฐ๋)"]; S --> |์ค์ ์ ๊ณต| W; S --> |์ค์ ์ ๊ณต| A; S --> |์ฑ/๋ฏธ๋ค์จ์ด ์ค์ | U; U --> |์์ฒญ ์ฒ๋ฆฌ| W; U --> |์์ฒญ ์ฒ๋ฆฌ| A; %% ๊ฐ ์ปดํฌ๋ํธ์ ์ฃผ์ ์ญํ %% manage.py: ํ๋ก์ ํธ ๋ช ๋ น์ด ์คํ ๋ฐ ๊ด๋ฆฌ %% settings.py: ํ๋ก์ ํธ ํ๊ฒฝ ์ค์ ๊ด๋ฆฌ %% urls.py: URL ํจํด๊ณผ ๋ทฐ ๋งคํ %% wsgi.py: ์ ํต์ ์ธ ์น ์๋ฒ ์ฐ๋ %% asgi.py: ๋น๋๊ธฐ/WebSocket ์ง์
Mermaid
๋ณต์ฌ
manage.py โ Django ํ๋ก์ ํธ ์คํ ๋์ฐ๋ฏธ
โข
Django ํ๋ก์ ํธ์ ๋ช
๋ น์ด ์ธํฐํ์ด์ค ์ญํ ์ ํฉ๋๋ค.
โข
์: runserver, migrate, startapp ๋ฑ ๊ด๋ฆฌ ๋ช
๋ น์ ์คํํ ๋ ์ฌ์ฉ.
โข
๋ด๋ถ์ ์ผ๋ก๋ settings.py๋ฅผ ๋ถ๋ฌ์ Django ํ๊ฒฝ์ ์ด๊ธฐํํจ.
settings.py โ ํ๋ก์ ํธ ์ ์ญ ์ค์ ํ์ผ
โข
ํ๋ก์ ํธ์ ๋ชจ๋ ํ๊ฒฝ ์ค์ ์ ์ ์ํ๋ ๊ณณ.
โข
์ฃผ์ ์ค์ ํญ๋ชฉ:
โฆ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ณด (DATABASES)
โฆ
์ฑ ๋ฑ๋ก (INSTALLED_APPS)
โฆ
๋ฏธ๋ค์จ์ด (MIDDLEWARE)
โฆ
์ ์ /๋ฏธ๋์ด ํ์ผ ๊ฒฝ๋ก
โฆ
๋ณด์ ์ค์ (SECRET_KEY, DEBUG, ALLOWED_HOSTS)
โข
๊ฐ๋ฐ/์ด์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ถ๋ฆฌ ๊ด๋ฆฌ ๊ฐ๋ฅ (์: settings_dev.py, settings_prod.py)
๋ฏธ๋ค์จ์ด๋?
์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ์๋ํ๋ ํ๋ ์์ํฌ ์ปดํฌ๋ํธ์
๋๋ค. ๋ฏธ๋ค์จ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค:
โข
๋ณด์ ๊ด๋ จ ์ฒ๋ฆฌ (์ธ์ฆ, CSRF ๋ณดํธ ๋ฑ)
โข
์ธ์
๊ด๋ฆฌ
โข
์์ฒญ/์๋ต ๋ฐ์ดํฐ ์ฒ๋ฆฌ
โข
์บ์ฑ
๋ฏธ๋ค์จ์ด๋ ์์๋๋ก ์คํ๋๋ฉฐ, settings.py์ MIDDLEWARE ๋ฆฌ์คํธ์ ์ ์๋ ์์๋ฅผ ๋ฐ๋ฆ
๋๋ค. ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ ์์์ ์๋๋ก, ์๋ต์ด ๋๊ฐ ๋๋ ์๋์์ ์๋ก ์คํ๋ฉ๋๋ค.
urls.py โ URL ๋ผ์ฐํ ์ค์ ํ์ผ
โข
ํด๋ผ์ด์ธํธ์ ์์ฒญ URL์ ์ด๋ค view๋ก ๋ณด๋ผ์ง ์ฐ๊ฒฐํ๋ ์ญํ .
โข
path(), re_path() ๋๋ include() ๋ฑ์ ์ฌ์ฉํด URL ํจํด ์ ์.
โข
project/urls.py๋ ์ ์ฒด ํ๋ก์ ํธ ๋ผ์ฐํ
์ ์์์ .
โข
๊ฐ ์ฑ์๋ urls.py๋ฅผ ๋ฐ๋ก ๋๊ณ , include()๋ก ์ฐ๊ฒฐ ๊ฐ๋ฅ.
wsgi.py โ ์น ์๋ฒ ๊ฒ์ดํธ์จ์ด ์ธํฐํ์ด์ค
โข
WSGI (Web Server Gateway Interface) ํ์ค์ ๊ตฌํํ ํ์ผ.
โข
Apache, Nginx ๋ฑ์ ์น ์๋ฒ์ Django ์ฑ์ ์ฐ๊ฒฐํ๋ ์ญํ .
โข
์ด์ ํ๊ฒฝ์์ Django ์ฑ์ ๋ฐฐํฌํ ๋ ์ฃผ๋ก ์ฌ์ฉ.
asgi.py โ ๋น๋๊ธฐ ์๋ฒ ๊ฒ์ดํธ์จ์ด ์ธํฐํ์ด์ค
โข
ASGI (Asynchronous Server Gateway Interface)๋ฅผ ๊ตฌํํ ํ์ผ.
โข
WebSocket ๋ฑ ๋น๋๊ธฐ ํ๋กํ ์ฝ์ ์ง์ํ๋ ํ๋์ ์ธ ์ธํฐํ์ด์ค.
โข
Daphne, Uvicorn ๋ฑ์ ASGI ์๋ฒ์ ํจ๊ป ์ฌ์ฉ.
โข
์ค์๊ฐ ๊ธฐ๋ฅ์ด ํ์ํ ์ฑ์์ ์ฃผ๋ก ํ์ฉ.