본문 바로가기
Development Frameworks/Django

[Django] 장고 마스터하기 (Django Tutorial) - Django 프로젝트의 자동 생성된 파일 설명 [3/11]

by 데이터 벌집 2024. 10. 2.
반응형

이전 포스팅에서는 Django 프로젝트를 설정하고 로컬 서버를 실행하는 방법에 대해 다뤘습니다. 이번 포스팅에서는 프로젝트 생성 시 자동으로 생성되는 파일들에 대해 자세히 설명하고, 각각의 역할과 중요성을 알아보겠습니다. 이를 통해 Django의 기본 구조를 더 잘 이해할 수 있으며, 앞으로의 개발 과정에서 파일들의 의미를 명확하게 파악할 수 있습니다.

 

[Django] 장고 마스터하기 (Django Tutorial) - Django 프로젝트의 자동 생성된 파일 설명 [3/11]

 

 

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',
]
 

 

4. urls.py에서의 URL 설정
Django에서 URL을 설정하는 것은 매우 중요한 작업입니다. urls.py 파일은 사용자가 특정 URL에 접근할 때 이를 어떤 뷰(View)로 처리할지 결정합니다. 예를 들어, 관리 페이지에 접근하려면 admin/이라는 경로를 설정합니다.

 

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

 

path() 함수는 URL과 이를 처리할 뷰를 연결하는 역할을 하며, 프로젝트가 어떤 요청을 어떻게 처리할지 정의합니다.

 

결론

이번 포스팅에서는 Django 프로젝트가 생성될 때 자동으로 생성되는 주요 파일과 디렉토리에 대해 알아보았습니다. 각 파일이 어떤 역할을 하는지, 왜 중요한지 이해함으로써 Django의 구조를 더 깊이 이해할 수 있었을 것입니다.

 

다음 포스팅에서는 Django 애플리케이션을 직접 생성하고, 프로젝트에 새로운 기능을 추가하는 방법을 다루겠습니다. 이 과정에서 실제 애플리케이션의 구성 요소들이 어떻게 결합되는지를 실습하게 될 것입니다.

반응형