장고 INSTALLED_APPS 에 생성한 앱을 추가해야 하는 이유


Django 프로젝트에서 INSTALLED_APPS 설정은 프로젝트가 사용할 앱들을 Django에 알려주는 역할을 합니다. 이 설정에 앱을 추가하는 이유와 안 해도 되는 경우를 설명하겠습니다.

앱을 INSTALLED_APPS에 추가하는 이유

  1. 모델 등록: 앱 내의 모델(models)이 데이터베이스 스키마로 변환되려면 INSTALLED_APPS에 해당 앱이 등록되어 있어야 합니다. 이를 통해 Django는 모델을 데이터베이스 테이블로 만들고 관리할 수 있습니다.
  2. 앱의 설정과 파일 사용: INSTALLED_APPS에 등록된 앱은 그 안에 정의된 설정, 템플릿, 스태틱 파일, 관리자 페이지 설정, 앱의 시그널(signals) 등을 사용할 수 있습니다.
  3. 앱 관련 마이그레이션 관리: Django의 마이그레이션 시스템은 INSTALLED_APPS에 있는 앱들의 모델 변경사항을 추적하고, 데이터베이스 마이그레이션을 관리합니다.
  4. 앱의 재사용성: 재사용 가능한 앱을 만들거나 외부에서 제공하는 앱을 프로젝트에 통합할 때, 해당 앱을 INSTALLED_APPS에 추가하면 쉽게 통합하고 활용할 수 있습니다.

앱을 INSTALLED_APPS에 추가하지 않아도 되는 경우

  1. 스탠드얼론 스크립트나 작업: 앱이 데이터베이스 모델이나 Django의 다른 시스템과 상호작용하지 않는 경우, 예를 들어 단순한 스크립트나 배치 작업을 수행하는 경우, INSTALLED_APPS에 추가할 필요가 없습니다.
  2. 프로젝트 내부에서만 사용되는 모듈: 프로젝트 내에서만 사용되고 Django의 기능과 상호작용하지 않는 단순한 파이썬 모듈이나 유틸리티의 경우에는 INSTALLED_APPS에 추가할 필요가 없습니다.
  3. 실험적인 기능 또는 개발 중인 앱: 프로젝트 개발 중에 특정 앱의 기능이 아직 확정되지 않았거나 실험적인 경우, 해당 앱을 INSTALLED_APPS에서 일시적으로 제외할 수 있습니다.

결론적으로, INSTALLED_APPS에 앱을 추가하는 것은 해당 앱이 Django 프레임워크의 다양한 기능과 밀접하게 통합되어야 할 때 중요합니다. 그러나 모든 파이썬 모듈이나 앱을 반드시 INSTALLED_APPS에 추가해야 하는 것은 아닙니다.

Django 프로젝트에서 INSTALLED_APPS 설정을 사용하는 예시를 들어 설명하겠습니다. 예를 들어, Django 프로젝트에 “Blog”라는 앱을 만들고 이를 프로젝트에 통합하는 과정을 생각해볼 수 있습니다.

1단계: 앱 생성

먼저, 프로젝트 폴더에서 다음 명령어를 사용하여 “Blog”라는 이름의 새로운 앱을 생성합니다:

python manage.py startapp Blog

이 명령은 Blog라는 이름의 디렉토리를 생성하고, 필요한 기본 파일들(모델, 뷰, 템플릿 등)을 생성합니다.

2단계: INSTALLED_APPS에 앱 추가

생성된 Blog 앱을 프로젝트에 통합하기 위해, 프로젝트의 설정 파일인 settings.py를 열고 INSTALLED_APPS 설정에 Blog 앱을 추가합니다.

# settings.py 
INSTALLED_APPS = [ 
  # 기존에 설치된 앱들 
  'django.contrib.admin', 
  'django.contrib.auth', 
  # ... 
  # 사용자가 생성한 앱 
  'Blog', 
  # 여기에 앱을 추가 
]

3단계: 앱의 기능 정의

이제 Blog 앱 내에서 모델, 뷰, URL 패턴 등을 정의하여 원하는 기능을 구현합니다. 예를 들어, 블로그 포스트를 위한 모델을 models.py에 정의할 수 있습니다.

# Blog/models.py 
from django.db import models 
class Post(models.Model): 
  title = models.CharField(max_length=100) 
  content = models.TextField() 
  published_date = models.DateTimeField(auto_now_add=True) 
  def __str__(self): 
    return self.title

4단계: 데이터베이스 마이그레이션

모델을 정의한 후, 다음 명령을 실행하여 데이터베이스 마이그레이션을 수행합니다. 이 과정에서 Blog 앱의 모델이 데이터베이스 테이블로 생성됩니다.

python manage.py makemigrations python manage.py migrate

5단계: 앱의 기능 활용

Blog 앱의 모델, 뷰, 템플릿 등을 사용하여 블로그 포스트를 생성, 조회, 수정, 삭제하는 기능을 구현할 수 있습니다. 또한 admin.py에 모델을 등록하여 Django 관리자 인터페이스를 통해 블로그 포스트를 관리할 수도 있습니다.

이 예제는 INSTALLED_APPS 설정을 통해 Django 프로젝트에 새로운 앱을 통합하는 기본적인 방법을 보여줍니다. INSTALLED_APPS에 앱을 추가함으로써 Django는 이 앱의 모델과 기능을 인식하고 프로젝트의 다른 부분과 통합할 수 있게 됩니다.



게시됨

카테고리

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다