Search

Core Files (ํ•ต์‹ฌ ํŒŒ์ผ)

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 ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ.
โ€ข
์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์•ฑ์—์„œ ์ฃผ๋กœ ํ™œ์šฉ.