Django 프로젝트와 앱 개념 이해
Django는 강력한 웹 프레임워크로, 웹 애플리케이션을 쉽고 빠르게 개발할 수 있도록 도와줍니다. Django를 처음 접하는 분들이라면 "프로젝트와 앱의 차이점은 무엇인가?"라는 질문을 가질 수 있습니다. 이번 글에서는 Django의 프로젝트와 앱 개념을 명확히 이해하고, 실제로 프로젝트와 앱을 생성하는 방법을 실습해 보겠습니다.
1. Django 프로젝트와 앱의 개념
프로젝트(Project)란?
Django에서 프로젝트(Project)는 웹 애플리케이션을 개발하기 위한 전체적인 환경을 의미합니다. 프로젝트는 여러 개의 앱을 포함할 수 있으며, 웹 애플리케이션의 설정, 데이터베이스 설정, URL 라우팅 등을 관리하는 역할을 합니다.
즉, 프로젝트는 Django 애플리케이션의 최상위 구조이며, 여러 개의 앱을 포함하는 컨테이너라고 할 수 있습니다.
앱(App)란?
앱(App)은 Django 프로젝트 내에서 특정한 기능을 수행하는 독립적인 모듈입니다. 예를 들어, 블로그, 사용자 인증, 결제 시스템 등 각각의 기능을 하나의 앱으로 분리하여 개발할 수 있습니다.
Django에서 앱은 독립적으로 설계될 수 있기 때문에, 재사용이 가능하고 유지보수가 용이합니다. 여러 프로젝트에서 동일한 앱을 사용할 수도 있습니다.
2. Django 프로젝트 생성하기
Django를 사용하여 새로운 프로젝트를 생성하려면 django-admin 명령어를 사용합니다. 먼저, Django가 설치되어 있어야 합니다. 아래 명령어를 실행하여 Django를 설치할 수 있습니다.
pip install django
이제 Django 프로젝트를 생성해 보겠습니다. 터미널에서 다음 명령어를 실행합니다.
django-admin startproject myproject
위 명령어를 실행하면 myproject라는 새 Django 프로젝트가 생성됩니다. 디렉터리 구조는 다음과 같습니다.
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
각 파일의 역할은 다음과 같습니다.
manage.py: Django 프로젝트를 관리하는 커맨드라인 유틸리티 파일입니다.settings.py: Django 프로젝트의 설정 파일입니다.urls.py: URL 패턴을 정의하는 파일입니다.wsgi.py,asgi.py: 웹 서버와 Django 애플리케이션을 연결하는 역할을 합니다.
3. Django 앱 생성하기
이제 프로젝트 내에서 앱을 생성해 보겠습니다. Django에서는 manage.py startapp 명령어를 사용하여 새로운 앱을 생성할 수 있습니다.
프로젝트 디렉터리로 이동한 후 다음 명령어를 실행합니다.
cd myproject
python manage.py startapp myapp
위 명령어를 실행하면 myapp이라는 새 앱이 생성되며, 디렉터리 구조는 다음과 같습니다.
myapp/
migrations/
__init__.py
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
각 파일의 역할은 다음과 같습니다.
models.py: 데이터베이스 모델을 정의하는 파일입니다.views.py: 웹 페이지의 로직을 처리하는 파일입니다.admin.py: Django 관리자(admin) 인터페이스를 설정하는 파일입니다.apps.py: 앱 설정을 관리하는 파일입니다.migrations/: 데이터베이스 마이그레이션 관련 파일이 저장됩니다.
4. 생성한 앱을 프로젝트에 등록하기
새로운 앱을 생성한 후에는 해당 앱을 Django 프로젝트에 등록해야 합니다. 이를 위해 settings.py 파일을 열고, INSTALLED_APPS 리스트에 myapp을 추가합니다.
# myproject/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 새로 생성한 앱 추가
]
이제 프로젝트에서 myapp을 사용할 수 있습니다.
5. 간단한 뷰(View) 작성 및 실행
이제 views.py 파일을 열어 간단한 뷰를 작성해 보겠습니다.
# myapp/views.py
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django!")
이제 urls.py에서 이 뷰를 연결해야 합니다. myapp 폴더에 urls.py 파일을 생성하고 아래와 같이 작성합니다.
# myapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
그다음, myproject/urls.py를 수정하여 myapp.urls를 포함시킵니다.
# myproject/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')), # myapp의 URL 연결
]
이제 서버를 실행하고 브라우저에서 확인해 보겠습니다.
python manage.py runserver
브라우저에서 http://127.0.0.1:8000/에 접속하면 "Hello, Django!" 메시지가 표시됩니다.
6. 마무리
이번 포스팅에서는 Django 프로젝트와 앱의 개념을 이해하고, 직접 프로젝트와 앱을 생성하는 과정을 실습해 보았습니다. 핵심 개념을 다시 정리하면 다음과 같습니다.
- Django 프로젝트는 웹 애플리케이션을 구성하는 전체적인 환경이며, 여러 개의 앱을 포함할 수 있다.
- Django 앱은 프로젝트 내에서 특정한 기능을 담당하는 독립적인 모듈이다.
django-admin startproject명령어로 프로젝트를 생성하고,python manage.py startapp명령어로 앱을 생성한다.- 생성한 앱을
settings.py의INSTALLED_APPS에 등록해야 한다. - 뷰와 URL을 연결하여 웹 페이지를 출력할 수 있다.
'Python > Django' 카테고리의 다른 글
| Django의 MTV(Model-Template-View) 패턴 이해하기 (0) | 2025.10.25 |
|---|---|
| Django 기본 폴더 구조 및 역할 (0) | 2025.10.24 |
| Django 설치 및 가상 환경 설정 (pip install django) (0) | 2025.10.22 |
| Django란? 웹 프레임워크 개념 및 특징 (0) | 2025.10.21 |