Python/Django

Django 프로젝트와 앱 개념 이해

임베디드 친구 2025. 10. 23. 21:17
반응형

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.pyINSTALLED_APPS에 등록해야 한다.
  • 뷰와 URL을 연결하여 웹 페이지를 출력할 수 있다.
반응형