이전 포스팅에서는 Django 프로젝트를 설정하고 로컬 서버를 실행하는 방법에 대해 다뤘습니다. 이번 포스팅에서는 프로젝트 생성 시 자동으로 생성되는 파일들에 대해 자세히 설명하고, 각각의 역할과 중요성을 알아보겠습니다. 이를 통해 Django의 기본 구조를 더 잘 이해할 수 있으며, 앞으로의 개발 과정에서 파일들의 의미를 명확하게 파악할 수 있습니다.
Django 프로젝트를 생성할 때 django-admin startproject 명령어를 사용하면 몇 가지 기본 파일과 디렉토리가 자동으로 생성됩니다. 이러한 파일들은 Django 애플리케이션을 관리하고 실행하는 데 필수적인 요소들입니다. 아래는 기본적으로 생성되는 파일 및 디렉토리의 구조와 설명입니다.
1. 프로젝트 구조
Django 프로젝트를 생성하면 아래와 같은 기본 디렉토리 구조가 만들어집니다:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
이 구조를 하나씩 자세히 살펴보겠습니다.
2. 주요 파일 및 디렉토리 설명
2.1 manage.py
manage.py는 Django 프로젝트에서 가장 중요한 파일 중 하나입니다. 이 파일은 Django 프로젝트를 관리하고 실행하는 데 사용되는 명령어 도구입니다. 예를 들어, 로컬 서버 실행, 데이터베이스 마이그레이션, 새로운 애플리케이션 생성 등의 작업을 할 때 manage.py 파일을 통해 명령어를 실행합니다.
주요 명령어 예시:
- 서버 실행:
python manage.py runserver
- 마이그레이션 실행:
python manage.py migrate
- 새로운 앱 생성:
python manage.py startapp <앱이름>
2.2 myproject/ 디렉토리
myproject/ 디렉토리는 실제로 프로젝트의 설정 및 실행 환경을 관리하는 중요한 파일들이 위치하는 곳입니다. 이 디렉토리 안에 Django의 중요한 설정 파일들이 있습니다.
- __init__.py: 이 파일은 Python 패키지에서 필수적으로 사용되는 파일로, 해당 디렉토리를 패키지로 인식하게 만듭니다. 이 파일은 비어있지만, Django가 해당 디렉토리를 Python 모듈로 취급하게 합니다.
- settings.py: Django 프로젝트의 설정을 관리하는 파일입니다. 이 파일은 데이터베이스 설정, 애플리케이션, 미들웨어, 시간대, 디버그 설정 등 프로젝트 전반의 설정을 담당합니다.
예를 들어, 프로젝트에 사용할 데이터베이스 설정은 settings.py 파일 안에 기록됩니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / "db.sqlite3",
}
}
- urls.py: 이 파일은 Django 애플리케이션에서 사용자가 접근할 수 있는 URL 경로를 정의하는 곳입니다. 예를 들어, 사용자가 특정 URL로 접속했을 때 해당 URL에 대한 요청을 처리할 뷰(View)를 지정하는 역할을 합니다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
- asgi.py: 이 파일은 Django의 비동기 서버 게이트웨이 인터페이스(ASGI)를 위한 파일입니다. ASGI는 웹 소켓 같은 비동기 작업을 지원하는 인터페이스입니다.
- wsgi.py: 이 파일은 Django의 웹 서버 게이트웨이 인터페이스(WSGI)를 위한 파일입니다. WSGI는 Django 애플리케이션이 웹 서버와 통신하는 방식을 정의합니다. 실제 배포 시에는 이 파일을 통해 서버와 애플리케이션이 연결됩니다.
3. settings.py의 주요 설정들
settings.py는 Django 프로젝트의 핵심 설정을 관리하는 파일입니다. 이 파일을 통해 개발 중 또는 실제 배포 환경에 맞는 설정을 조정할 수 있습니다.
- DEBUG: 프로젝트가 디버그 모드에서 실행되는지 여부를 설정합니다. 개발 중에는 True로 설정하고, 배포 시에는 False로 변경해야 합니다.
DEBUG = True
- ALLOWED_HOSTS: 프로젝트가 어떤 도메인 또는 IP에서 접속을 허용할 것인지 정의하는 리스트입니다. 배포 시에는 도메인 이름 또는 서버의 IP 주소를 설정해야 합니다.
ALLOWED_HOSTS = []
- INSTALLED_APPS: 프로젝트에서 사용하는 Django 애플리케이션들이 나열된 리스트입니다. 이곳에 각 애플리케이션을 등록하면 Django는 해당 앱의 설정을 프로젝트에 적용합니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
path() 함수는 URL과 이를 처리할 뷰를 연결하는 역할을 하며, 프로젝트가 어떤 요청을 어떻게 처리할지 정의합니다.
결론
이번 포스팅에서는 Django 프로젝트가 생성될 때 자동으로 생성되는 주요 파일과 디렉토리에 대해 알아보았습니다. 각 파일이 어떤 역할을 하는지, 왜 중요한지 이해함으로써 Django의 구조를 더 깊이 이해할 수 있었을 것입니다.
다음 포스팅에서는 Django 애플리케이션을 직접 생성하고, 프로젝트에 새로운 기능을 추가하는 방법을 다루겠습니다. 이 과정에서 실제 애플리케이션의 구성 요소들이 어떻게 결합되는지를 실습하게 될 것입니다.
'Development Frameworks > Django' 카테고리의 다른 글
[Django] 장고 마스터하기 (Django Tutorial) - Django 서버 실행 및 관리[6/11] (1) | 2024.10.05 |
---|---|
[Django] 장고 마스터하기 (Django Tutorial) - Django URL 설정 [5/11] (1) | 2024.10.04 |
[Django] 장고 마스터하기 (Django Tutorial) - Django 애플리케이션 [4/11] (2) | 2024.10.03 |
[Django] 장고 마스터하기 (Django Tutorial) - 프로젝트 설정 가이드: 첫 걸음 [2/11] (2) | 2024.10.01 |
[Django] 장고 마스터하기 (Django Tutorial) - Django란 무엇인가? [1/11] (4) | 2024.09.30 |