1. Django 프로젝트와 앱 구조 이해하기
코드를 시작하기 전에, Django 애플리케이션의 아키텍처를 이해하는 것이 중요합니다. Django는 코드베이스를 유지 가능하고 확장 가능하게 유지하기 위해 "프로젝트"와 "앱"이라는 개념을 사용합니다. Django 프로젝트는 전체 웹 애플리케이션을 나타내며, 앱은 프로젝트 내에서 특정한 기능을 제공하는 모듈입니다. 각 Django 프로젝트는 여러 개의 앱을 포함할 수 있으며, 각 앱은 다양한 프로젝트에 연결될 수 있어 구성 요소의 재사용성을 촉진합니다.
2. 전체 디렉터리 구조
.
├── manage.py
├── project_name
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── app1
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── ...
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── app2
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── ...
├── models.py
├── tests.py
└── views.py
| 파일명 | 포함되는 모듈 | 상세 설명 | 주요 역할 |
|---|---|---|---|
manage.py | 프로젝트 | 관리 작업을 위한 명령 줄 유틸리티입니다. | 실행 |
settings.py | 프로젝트 | 전체 Django 프로젝트의 구성을 담고 있는 파일입니다. | 설정 |
urls.py | 프로젝트 | URL을 기반으로 웹 요청을 라우팅(Routing)하는 파일입니다. | 라우팅 |
wsgi.py | 프로젝트 | WSGI 호환 웹 서버가 프로젝트를 제공하는 데 사용하는 파일입니다. | 배포 |
asgi.py | 프로젝트 | ASGI 호환 웹 서버가 프로젝트를 제공하는 데 사용하는 파일입니다. | 배포 |
models.py | 앱 (App) | 데이터베이스 스키마를 위한 파일입니다. | 데이터 |
views.py | 앱 (App) | 비즈니스 로직을 담당하는 파일입니다. | 로직 |
tests.py | 앱 (App) | 단위 테스트를 위한 파일입니다. | 테스트 |
urls.py | 앱 (App) | 앱별 URL 라우팅을 위한 파일입니다. | 라우팅 |
admin.py | 앱 (App) | Django 관리자 인터페이스를 구성하기 위한 파일입니다. | 관리자 |
forms.py | 앱 (App) | Django 폼(Form)을 정의하기 위한 파일입니다. | 입력 양식 |