이미지·CSS·JavaScript·폰트 같은 「정적 파일」은 매 요청마다 동일한 내용을 보냅니다.
매번 파이썬 앱이 처리하면 비효율 — Nginx·CDN을 앞에 두면 파이썬 앱은 동적 요청만 처리하게 됩니다.
Nginx로 정적 파일 직접 서빙.
파이썬 앱(uvicorn·gunicorn)을 뒤에 두고, Nginx가 /static/* 경로는 디스크 파일을 직접 응답.
파이썬 앱은 /api/* 같은 동적 경로만.
처리량이 비교 안 될 정도로 높습니다.
CDN(Content Delivery Network).
CloudFlare·CloudFront·KT 클라우드 같은 서비스.
전 세계 엣지 서버에 정적 파일을 캐시 → 사용자 가장 가까운 곳에서 응답.
지연 시간 대폭 감소.
캐시 헤더.
Cache-Control: public, max-age=31536000(1년) — 자주 안 변하는 자원.
파일명에 해시(app.abc123.js)를 넣어 「내용 바뀌면 파일명 바뀜」 → 영구 캐시 + 배포 즉시 반영 패턴.
Django는 collectstatic 명령으로 정적 파일 한 곳에 모아 Nginx에서 서빙.
Flask는 send_from_directory 또는 url_for("static", filename=...).
직접 파이썬 앱이 정적 파일 응답하는 건 개발 모드에서만 권장.
한 줄 요약
정적 파일은 Nginx·CDN이 직접 서빙해 파이썬 앱 부담을 줄입니다.
캐시 헤더 + 파일명 해시로 영구 캐시 + 배포 즉시 반영 패턴이 표준.
더 알아볼 것
- whitenoise — 파이썬 앱이 정적 파일 처리
- CDN 캐시 무효화 — purge
- Nginx + uvicorn 구성