본문 바로가기
IT/Python

Django, Django 프로젝트의 환경 및 구성 설정을 담고 있는 중요한 파일 settings.py

by Cyber_ 2024. 4. 7.

0. 개요

Django 프로젝트를 시작하면 생성된 파일 중 settings.py를 볼 수 있다. 제목에 설명한 것과 같이 settings.py는 Django 프로젝트의 환경 및 구성 설정을 담고 있는 중요한 파일이다. setting.py의 주요 설정 요소에 대해 알아보자

1. 주요 설정 요소

1) DEBUG

  • 개발 중에는 True로 설정하여 디버깅 정보를 표시
  • 프로덕션 환경에서는 보안을 위해 Flase로 설정

2) INSTALLED_APPS

  • 프로젝트에서 사용하는 Django 앱을 나열
  • 기본 앱과 사용자가 만든 앱 또는 서드 파티 챕을 여기에 추가

3) MIDDELWARE

  • 요청과 응답 사이에서 동작하는 미들웨어를 정의
  • 보안, 세션 관리, CORS등 다양한 기능을 위한 미들웨어를 설정

4) DATABASES

  • 데이터베이스 연결 설정을 정의
  • 기본적으로 SQLite
  • PostgreSQL, MySQL, Oracle 등 다른 데이터베이스로 변경 가능

5) TEMPLATES

  • 템플릿 엔진 설정을 포함
  • 템플릿 파일들의 위치, 로더, 컨텍스트 프로세스 등을 정의

6) STATIC_URL 및 STATICFILES_DIRS

  • 정적 파일(JavaScript, CSS, 이미지 등)의 URL 및 파일 시스템 경로를 설정

7) MEDEA_URL 및 MEDIA_ROOT

  • 사용자가 업로드하는 미디어 파일(이미지, 비디오 등)의 URL 및 저장위치를 설정

8) LANGUAGE_CODE 및 TIME_ZONE

  • 기본언어와 시간대를 설정

9) ALLOWED_HOSTS

  • 서버가 응답할 수 있는 호스트/도메인 을 정의
  • 보안을 위해 프로덕션 환경에서는 실제 호스트명을 명시

10) SECRET_KEY

  • Django 프로젝트의 보안 키로, 암호화와 세션 관리에 사용
  • 안전하게 관리되어야 하며, 공개되지 않도록 주의

11) ROOT_URLCONF

  • 프로젝트의 ㄹ루트 URL 설정을 가리키는 모듈을 지정

12) WSGI_APPLICATION

  • WSGI 애프리케이션의 Python 경로를 설정

2. 참고사항

  • settings.py 파일은 프로젝트의 구성에 매우 중요하기 때문에 보안과 성능을 고려하여 신중하게 관리
  • 프로덕션 환경에서는 보안과 성능을 위해 다양한 추가적인 설정이 필요
    (DEBUG, ALLOWED_HOSTS, SECRET_KEY 등)
  • 민감한 정보(데이터베이스 비밀번호,'SECRET_KEY 등)은 환경 변수를 통해 관리하는 것이 좋다.