반응형
✅ .env.dev가 뭐야?
.env.dev는 **“개발 환경에서만 사용할 설정값들을 담은 환경 변수 파일”**이야.
보통 .env.production, .env.test, .env.local 같은 다른 환경용 파일과 구분해서 사용해.
✅ .env.dev에 보통 들어가는 것들
더보기
DEBUG=True
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
DJANGO_SECRET_KEY=dev-secret-key
DB_NAME=mydb
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
DJANGO_SECRET_KEY=dev-secret-key
DB_NAME=mydb
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
모든 민감 정보와 설정값을 하드코딩하지 않고 여기에 보관함
✅ 왜 좋은가? (장점)
기능설명
| 🔒 보안 | Git에 SECRET_KEY, DB 비밀번호 노출 방지 가능 (.gitignore) |
| 🔁 환경 분리 | 개발 vs 운영 환경 설정을 깔끔하게 나눌 수 있음 |
| 🔄 빠른 변경 | 코드 수정 없이 설정만 바꿔서 동작 제어 가능 |
| 🐳 Docker 연동 | docker-compose.yml에서 환경변수로 자동 불러옴 |
✅ Django + Docker 예시 구조
📁 프로젝트 구조 예시
더보기
project/
├── .env.dev
├── .env.prod
├── docker-compose.yml
├── Dockerfile
├── mysite/
│ ├── settings.py
├── .env.dev
├── .env.prod
├── docker-compose.yml
├── Dockerfile
├── mysite/
│ ├── settings.py
📦 docker-compose.yml 안에서 불러오는 방식
더보기
services:
web:
build: .
env_file:
- .env.dev
ports:
- "8000:8000"
web:
build: .
env_file:
- .env.dev
ports:
- "8000:8000"
🧠 settings.py에서 환경변수 사용하는 방식
더보기
import os
DEBUG = os.environ.get("DEBUG", "False") == "True"
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "fallback-secret")
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "").split(",")
DEBUG = os.environ.get("DEBUG", "False") == "True"
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "fallback-secret")
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "").split(",")
반응형
'WEB > Python-Django' 카테고리의 다른 글
| Docker 관련 명령어 (1) | 2025.07.04 |
|---|---|
| Docker 설정(settings.py) (0) | 2025.07.04 |
| Docker설정(docker-compose.yml) (0) | 2025.07.04 |
| Docker 설정(Dockerfile) (0) | 2025.07.04 |
| Docker 설정(requirements.txt) (2) | 2025.07.04 |