[장고] 프로젝트 설정: 효율적인 개발 환경 구축하기

소요 시간: 2분

장고(Django)는 강력하고 유연한 웹 프레임워크로, 다양한 웹 애플리케이션을 빠르고 효율적으로 개발할 수 있게 도와줍니다. 하지만 프로젝트를 시작하기 전에 적절한 설정을 통해 개발 환경을 최적화하는 것이 중요합니다. 이번 글에서는 장고 프로젝트의 주요 설정 옵션에 대해 살펴보고, 각 설정이 왜 필요한지, 어떻게 적용하는지에 대해 설명합니다.


프로젝트 설정 파일: settings.py

settings.py 파일은 장고 프로젝트의 핵심 설정 파일로, 프로젝트 생성 시 자동으로 생성되며 루트 디렉터리에 위치합니다. 이 파일은 전반적인 프로젝트 설정을 포함하고 있으며, 다양한 옵션들을 통해 개발 및 배포 환경을 조정할 수 있습니다.

DEBUG: 디버깅 모드 설정

DEBUG 옵션은 개발 중 발생하는 에러를 웹 페이지에 출력할지 여부를 결정합니다. 개발 시에는 True로 설정하여 에러 메시지를 확인하고 수정할 수 있지만, 배포 시에는 반드시 False로 설정해야 합니다. 이렇게 해야 에러 메시지가 외부에 노출되지 않아 보안 위험을 줄일 수 있습니다.

DEBUG = True  # 개발 시
DEBUG = False  # 배포 시

ALLOWED_HOSTS: 허용할 호스트 설정

ALLOWED_HOSTS는 장고 프로젝트가 접근을 허용할 호스트 주소를 지정합니다. 로컬 개발 환경에서는 보통 127.0.0.1를 사용하지만, 배포 시에는 실제 서버의 도메인 주소를 입력해야 합니다.

ALLOWED_HOSTS = ['127.0.0.1', 'www.example.com']

INSTALLED_APPS: 설치된 앱 등록

INSTALLED_APPS는 프로젝트에 설치된 앱들을 등록하는 옵션입니다. 새로운 앱을 생성하거나 추가할 때마다 이 리스트에 앱 이름을 추가해야 합니다. 그래야만 장고가 해당 앱을 인식하고 사용할 수 있습니다.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    ...
    'posts',  # 새로 추가한 앱
]

LANGUAGE_CODE: 시스템 언어 설정

프로젝트의 기본 언어를 한국어로 설정하려면 LANGUAGE_CODE 옵션을 사용합니다. 이렇게 하면 시스템 메시지 등이 한국어로 표시됩니다.

LANGUAGE_CODE = 'ko-kr'

TIME_ZONE: 시간대 설정

장고는 기본적으로 UTC 시간을 사용합니다. 그러나 한국에서 운영되는 프로젝트라면 시간을 한국 시간에 맞춰 설정하는 것이 좋습니다. 이를 위해 TIME_ZONE과 USE_TZ 옵션을 설정합니다.

이 설정을 통해 데이터베이스에 기록되는 시간이 한국 표준시로 저장됩니다. 단, 이 경우 뷰에서 datetime.datetime.now() 대신 django.utils.timezone을 사용해야 합니다.

STATIC_ROOT: 정적 파일 위치 설정

CSS, JS, 이미지 파일 등 정적 파일을 저장할 위치를 지정합니다. 이는 배포 시 정적 파일들을 효율적으로 관리하기 위해 필요합니다.

STATIC_ROOT = os.path.join(BASE_DIR, 'static')


결론

장고 프로젝트의 설정 파일인 settings.py를 적절히 설정하는 것은 성공적인 개발 및 배포의 중요한 첫걸음입니다. 디버깅 모드, 허용할 호스트, 설치된 앱, 언어 및 시간대 설정, 정적 파일 위치 설정 등 다양한 옵션을 통해 프로젝트를 최적화할 수 있습니다. 이러한 설정들을 통해 더 안전하고 효율적인 장고 프로젝트를 개발해보세요.

장고 리스트