지난 포스팅에서는 Django 프로젝트 생성 시 자동으로 생성되는 주요 파일들에 대해 살펴봤습니다. 이번 글에서는 Django 애플리케이션이 무엇인지, 그리고 이를 프로젝트에 추가하고 관리하는 방법에 대해 설명하겠습니다. Django는 대규모 프로젝트에서 애플리케이션(앱)을 독립적으로 관리할 수 있는 강력한 기능을 제공하는데, 이 과정이 Django의 유연성과 확장성을 극대화하는 데 중요한 역할을 합니다.
1. Django 애플리케이션이란?
Django에서 애플리케이션(앱)은 특정한 기능이나 역할을 담당하는 모듈입니다. 예를 들어, 블로그 웹사이트를 개발할 때 블로그 기능을 처리하는 애플리케이션과 사용자 인증 기능을 관리하는 애플리케이션을 각각 따로 만들 수 있습니다. 이렇게 여러 애플리케이션을 하나의 프로젝트 안에 결합해 대규모 프로젝트를 효율적으로 관리할 수 있습니다.
2. 새로운 애플리케이션 생성하기
Django에서 새로운 애플리케이션을 생성하는 방법은 매우 간단합니다. manage.py 명령어를 통해 애플리케이션을 생성할 수 있습니다. 다음 명령어를 사용하여 새로운 애플리케이션을 생성해보세요.
python manage.py startapp <애플리케이션 이름>
예를 들어, 블로그 기능을 위한 애플리케이션을 생성하려면 다음과 같이 입력합니다:
python manage.py startapp blog
이 명령어를 실행하면 다음과 같은 디렉토리 구조가 생성됩니다:
blog/
migrations/
__init__.py
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
이제 각 파일의 역할을 자세히 알아보겠습니다.
3. 애플리케이션 파일 설명
3.1 migrations/
migrations/ 디렉토리는 Django의 데이터베이스 변경 사항을 추적하는 곳입니다. 데이터베이스에 모델을 생성하거나 수정할 때마다 마이그레이션 파일이 이 디렉토리에 생성됩니다. 이는 데이터베이스 구조와 Django 모델의 일관성을 유지하는 데 중요한 역할을 합니다.
3.2 admin.py
admin.py 파일은 Django의 관리자(admin) 사이트에서 모델을 관리할 수 있도록 설정하는 곳입니다. 이 파일을 수정해 특정 모델을 관리자 페이지에 추가할 수 있습니다. 예를 들어, 아래와 같이 Post 모델을 관리자 페이지에서 관리할 수 있도록 추가합니다.
from django.contrib import admin
from .models import Post
admin.site.register(Post)
3.3 apps.py
apps.py 파일은 애플리케이션의 설정 정보를 담고 있는 파일입니다. Django는 이 파일을 통해 해당 애플리케이션을 인식하고, 프로젝트에 필요한 설정을 적용합니다.
3.4 models.py
models.py 파일은 데이터베이스 구조를 정의하는 곳입니다. 여기에서 데이터베이스 테이블에 해당하는 Django 모델을 정의할 수 있습니다. 예를 들어, 블로그 게시글(Post) 모델을 정의하려면 다음과 같이 작성합니다.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
이렇게 모델을 정의한 후 마이그레이션을 통해 데이터베이스에 반영할 수 있습니다.
3.5 tests.py
tests.py 파일은 애플리케이션의 테스트를 작성하는 곳입니다. Django는 기본적으로 테스트 프레임워크를 제공하며, 이를 통해 각 기능이 예상대로 작동하는지 확인할 수 있습니다. 예를 들어, 간단한 테스트 케이스를 추가할 수 있습니다.
from django.test import TestCase
from .models import Post
class PostModelTest(TestCase):
def test_string_representation(self):
post = Post(title="My first post")
self.assertEqual(str(post), post.title)
3.6 views.py
views.py 파일은 사용자가 웹 애플리케이션에 요청을 보낼 때 그 요청을 처리하는 곳입니다. 뷰는 클라이언트로부터 들어오는 요청을 받고, 이를 처리해 응답을 반환하는 로직을 작성하는 곳입니다.
예를 들어, 간단한 블로그 게시글 리스트를 출력하는 뷰를 다음과 같이 작성할 수 있습니다:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'blog/post_list.html', {'posts': posts})
4. 애플리케이션을 프로젝트에 등록하기
새로 생성한 애플리케이션을 Django 프로젝트에서 사용하려면 settings.py 파일에서 해당 애플리케이션을 등록해야 합니다. INSTALLED_APPS 리스트에 애플리케이션 이름을 추가합니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 새로 생성한 애플리케이션
]
이제 프로젝트에서 해당 애플리케이션을 사용할 수 있습니다.
이번 포스팅에서는 Django 애플리케이션이 무엇인지, 그리고 이를 생성하고 프로젝트에 추가하는 방법에 대해 알아보았습니다. 애플리케이션은 Django 프로젝트에서 독립적으로 관리할 수 있는 중요한 요소이며, 이를 통해 대규모 프로젝트도 효과적으로 구성할 수 있습니다.
다음 포스팅에서는 Django에서 URL 설정을 어떻게 하는지에 대해 다룰 예정입니다. 이를 통해 사용자가 웹 애플리케이션에 요청을 보낼 때 각 URL이 어떻게 처리되는지 이해할 수 있을 것입니다.
'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 프로젝트의 자동 생성된 파일 설명 [3/11] (1) | 2024.10.02 |
[Django] 장고 마스터하기 (Django Tutorial) - 프로젝트 설정 가이드: 첫 걸음 [2/11] (2) | 2024.10.01 |
[Django] 장고 마스터하기 (Django Tutorial) - Django란 무엇인가? [1/11] (4) | 2024.09.30 |