django-environ으로 민감 정보와 환경변수 안전하게 관리하기

django-environ을 활용해 개발/테스트/운영 환경별 설정과 SECRET_KEY, DB 접속 정보 등 민감 정보를 코드와 분리하여 보안성과 관리 효율성을 높이는 방법

환경변수 관리의 중요성

문제점

  • settings.py에 하드코딩 시 Git 저장소에 민감 정보 노출

  • 환경별 설정 변경 시 코드 직접 수정 필요

  • 팀원 합류 시 로컬 환경 설정 안내의 번거로움

해결 방법

  • Twelve-Factor App 원칙에 따른 설정과 코드의 완전 분리

  • django-environ을 통한 환경변수 기반 설정 관리

기본 설정 및 사용법

설치

.env 파일 생성

.gitignore 필수 추가

settings.py 적용

실무 활용 팁

협업을 위한 .env.example 파일

  • 실제 값 대신 예시 값으로 구성

  • Git에 포함하여 필요한 환경변수 목록 공유

타입 캐스팅 활용

  • env.bool(): 불리언 변환

  • env.int(): 정수 변환

  • env.list(): 콤마 구분 리스트 변환

  • env.json(): JSON 형식 변환

기본값 설정

Docker 환경 대응

  • 로컬: .env 파일 활용

  • 운영: 컨테이너 환경변수 직접 주입

  • 시스템 환경변수가 .env 파일보다 우선 적용

보안 주의사항

SECRET_KEY 생성

Last updated