같은 듯 다른, 장고 프로젝트와 장고 앱
장고 프로젝트가 시작되고 거기에는 구체적인 작업 공간인 '장고 앱'이 설치됩니다. 두 관계는 어떻게 될까요? 아래에서 살펴 봅니다.


이미지에 나온 화면은 Django 프로젝트(mysite)와 그 안에 생성된 앱(gonggam)의 디렉터리 구조를 보여주고 있습니다. 이 구조를 바탕으로 Django 프로젝트와 Django 앱의 개념 차이를 명확히 설명드리겠습니다.
🏗 Django 프로젝트란?
Django 프로젝트(project)는 웹사이트 전체를 아우르는 설계도 또는 건물의 뼈대와 같습니다.
하나의 웹 애플리케이션을 개발할 때 가장 먼저 생성하는 단위이며, 웹 서버, URL, 데이터베이스, 설정 등을 포함합니다.
프로젝트의 주요 구성 요소
- manage.py : 프로젝트를 관리하기 위한 커맨드 도구 (서버 실행, 마이그레이션 등).
- config/ : 실제 프로젝트의 설정 폴더 (이름은 자유롭게 지정 가능).
- settings.py : 프로젝트 전반의 설정을 담당 (데이터베이스, 앱 등록, 언어, 시간대 등).
- urls.py : 사이트 전체 URL 흐름을 정의.
- wsgi.py, asgi.py : 배포 시 필요한 웹서버와 연동을 위한 파일.
- db.sqlite3 : 기본 데이터베이스 파일 (SQLite 사용 시 자동 생성됨).
🔧 Django 앱이란?
Django 앱(app)은 하나의 기능 또는 모듈을 구성하는 재사용 가능한 부품입니다.
예를 들어 게시판, 사용자 관리, 블로그, 댓글 기능 등은 각각 하나의 앱으로 구현할 수 있습니다.
앱은 하나의 프로젝트에 여러 개 존재할 수 있으며, 독립적으로 개발 및 테스트가 가능합니다.
앱의 주요 구성 요소
- apps.py : 앱 설정 정보.
- models.py : 데이터 모델 정의 (DB 테이블과 연결).
- views.py : 사용자 요청을 처리하는 함수나 클래스.
- urls.py : 앱 내 URL 패턴 정의 (직접 추가해야 함).
- admin.py : 관리자 페이지에서 모델 등록.
- tests.py : 테스트 코드 작성.
- migrations/ : 데이터베이스 마이그레이션 기록 저장.
🎯 정리: 프로젝트 vs 앱
| 항목 | 프로젝트 | 앱 |
| 목적 | 전체 웹사이트 구성 | 개별 기능 단위 구성 |
| 생성 명령어 | django-admin startproject mysite | python manage.py startapp gonggam |
| 위치 | 최상위 디렉토리 | 프로젝트 내부 또는 외부에서 생성 가능 |
| 예시 | 로그인 시스템, 블로그, 쇼핑몰 등 전체 사이트 | 회원가입, 댓글, 제품 등록 등 개별 기능 |
| 설정 등록 | settings.py에서 앱 이름을 등록해야 활성화됨 | INSTALLED_APPS에 등록해야 함 |
✅ 다음 단계
생성된 앱(gonggam)을 사용하기 위해서는 반드시 config/settings.py 파일에서 다음과 같이 앱을 등록해야 합니다:
# config/settings.py
INSTALLED_APPS = [
...
'gonggam',
]
이후, gonggam/models.py에 모델을 작성하고, 마이그레이션을 통해 DB에 반영하게 됩니다.
'Windows 코딩' 카테고리의 다른 글
| PowerShell과 Windows Terminal (0) | 2025.06.27 |
|---|---|
| Django 프로젝트에 gonggam 앱 등록 (1) | 2025.06.11 |
| [Django] Windows에 설치하고 실행 (2) | 2025.06.09 |
| pybo/models.py 파일에 작성하는 모델 코드 예제 (1) | 2025.05.01 |
| DB Browser for SQLite 프로그램 (1) | 2025.04.30 |