📚 FDE · 세션 · Django 이해 · L02

Django 환경 설정 (settings)

작성일자 2026-07-30  ·  수정일자 2026-08-10  ·  강의차수 L02  ·  예상소요 20분

목표 프로젝트의 '설정(settings)'이 무엇이고, 왜 공통·환경별로 나뉘며, prod·dev 에 따라 어떻게 다른 설정이 켜지는지 이해한다.

앞 강의에서 프로젝트 폴더에 '전체 설정'을 담당하는 곳이 있다고 했습니다. 그 설정(settings) 이 무엇인지 이번에 봅니다.

1. 설정이란?

설정(settings) 은 프로젝트가 어떻게 동작할지 정해 두는 값의 모음입니다. 예를 들면 이런 것들입니다.

  • 어떤 데이터베이스에 연결할지
  • 어떤 주소(도메인)로 들어오는 요청을 받을지
  • 비밀키 같은 값을 어디서 읽을지
  • 에러가 났을 때 화면에 자세히 보여 줄지 말지

코드를 바꾸지 않아도, 이 설정만 바꾸면 프로젝트의 동작이 달라집니다.


2. 공통 설정 + 환경별 설정

공통 설정prod·dev 공통prod 환경공통 + prod 설정dev 환경공통 + dev 설정+ prod 설정+ dev 설정

설정은 두 가지로 나뉩니다.

  • 공통 설정: prod·dev 어디서나 똑같은 값 (대부분이 여기 해당).
  • 환경별 설정: 환경마다 달라져야 하는 값만 따로. prod 용 한 벌, dev 용 한 벌.

대부분은 공통이고, 정말 달라져야 하는 것만 환경별로 나눠 둡니다. 그래야 같은 설정을 두 번 쓰지 않고, 바뀌는 부분만 관리할 수 있습니다.


3. 환경마다 다른 값

환경별 설정에 담기는 대표적인 값들입니다.

설정 prod dev
데이터베이스 prod 용 DB dev 용 DB
받는 주소(도메인) prod 도메인 dev 도메인
비밀키(API 키) prod 용 dev 용
에러 자세히 표시 끔(고객에게 노출 금지) 켬(dev 편의)

비밀키 같은 값 자체는 설정 코드가 아니라 앞 비밀키와 환경변수 강의에서 배운 .env 에 두고, 설정은 그 값을 읽어 씁니다. 환경별 .env 는 아래처럼 나뉩니다. 항목은 같지만 값이 다릅니다(둘 다 git 에는 안 올림).

# prod 의 .env  (운영 서버)
DATABASE_URL=운영 DB 주소
ALLOWED_HOSTS=education.popupstudio.ai
SECRET_KEY=prod 용 비밀키
DEBUG=False        # 에러 감춤 (고객 노출 금지)
# dev 의 .env  (개발용)
DATABASE_URL=개발 DB 주소
ALLOWED_HOSTS=education-dev.popupstudio.ai
SECRET_KEY=dev 용 비밀키
DEBUG=True         # 에러 자세히 (개발 편의)

4. 환경별 자동 선택

prod 로 배포하면 공통 설정과 prod 설정이, dev 에서 실행하면 공통 설정과 dev 설정이 자동으로 켜집니다. 이때 코드는 prod·dev 양쪽에 똑같은 한 벌이 올라가고, 달라지는 것은 코드가 아니라 설정입니다. 앞 개발환경과 운영환경 강의에서 본 '코드는 한 벌, 환경마다 달라짐'이 바로 이 설정 구조 덕분입니다.


마무리

  • 핵심 정리: 설정은 공통 설정과 환경별 설정(prod/dev)으로 나뉘고, 실행하는 환경에 맞는 설정이 자동으로 켜집니다. 코드는 한 벌이며, 데이터베이스·주소·비밀키 같은 값만 환경마다 달라집니다.
  • 주의 사항: 설정을 바꿔도 반영되지 않으면, 다른 환경(prod/dev)의 설정을 고친 경우가 많습니다.
  • 다음 시간: Django 가 기능을 나누는 단위인 App(앱) 의 구조를 살펴봅니다.
이 강의를 학습하셨나요?