본문 바로가기
Development Frameworks/Django

[Django] 장고 마스터하기 (Django Tutorial) - Django 애플리케이션 [4/11]

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

지난 포스팅에서는 Django 프로젝트 생성 시 자동으로 생성되는 주요 파일들에 대해 살펴봤습니다. 이번 글에서는 Django 애플리케이션이 무엇인지, 그리고 이를 프로젝트에 추가하고 관리하는 방법에 대해 설명하겠습니다. Django는 대규모 프로젝트에서 애플리케이션(앱)을 독립적으로 관리할 수 있는 강력한 기능을 제공하는데, 이 과정이 Django의 유연성과 확장성을 극대화하는 데 중요한 역할을 합니다.

 

[Django] 장고 마스터하기 (Django Tutorial) - Django 애플리케이션[4/11]

 

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이 어떻게 처리되는지 이해할 수 있을 것입니다.

반응형