API 키·DB 비밀번호 같은 「비밀」은 절대 코드에 적으면 안 됩니다.
깃에 올라가는 순간 영원히 노출.
환경변수와 .env 파일이 표준 패턴입니다.
환경변수 기본.
import os.
api_key = os.environ["API_KEY"] 또는 안전하게 os.environ.get("API_KEY", "기본값").
쉘에서 export API_KEY=xxx 후 실행, 또는 API_KEY=xxx python script.py.
.env 파일 + python-dotenv.
프로젝트 루트에 .env 파일 — API_KEY=xxx, DB_URL=....
from dotenv import load_dotenv.
load_dotenv() — 자동으로 환경변수에 적재.
코드에서는 평소처럼 os.environ으로 접근.
.gitignore에 .env 반드시 추가.
그리고 .env.example을 만들어 「이런 변수가 필요하다」 문서화 — 실제 값은 비워두고 키만.
새 사람이 프로젝트 받았을 때 무엇을 채워야 하는지 즉시 보임.
프로덕션에서는 다른 패턴.
AWS Secrets Manager, HashiCorp Vault, Kubernetes Secrets, GitHub Actions secrets 등.
「비밀을 별도 시스템에서 관리 → 런타임에 주입」이 표준.
.env는 개발·작은 프로젝트용.
한 줄 요약
비밀은 환경변수로, 개발 시 .env + python-dotenv 패턴.
.gitignore 필수, .env.example로 문서화.
프로덕션은 Secrets Manager 등 전용 시스템.
더 알아볼 것
- pydantic-settings — 환경변수 타입 검증
- keyring — OS 키체인 활용
- 비밀 노출됐다면 즉시 회전