진행 현황
- 프로젝트 초기화
Django 6.0.3 버전을 기반으로 config라는 이름의 메인 설정 디렉토리를 성공적으로 구성- 패키지 관리
Poetry 환경을 구축하여 pyproject.toml 파일에 프로젝트에 필요한 의존성 라이브러리 목록을 명확히 정의- 컨테이너화 준비
앱을 쉽게 배포하고 실행하기 위해 파이썬 3.13 버전을 바탕으로 하는 Dockerfile 작성 완료- 앱 구조 기획
config/settings.py 파일의 CUSTOM_APPS 항목에 apps.User, apps.Event, apps.EventMember 등 기획하신 기능별 앱 이름들을 등록
.gitignore.env
__pycache__/
*.py[cod]
media/
db.sqlite3
.venv/
venv/
*.pyc
# -----------------------------------------------------------------------------
# Python 관련 (기본적인 컴파일 파일 및 캐시 제외)
# -----------------------------------------------------------------------------
__pycache__/ # 파이썬이 실행 속도를 높이기 위해 만드는 바이트코드 캐시 폴더입니다.
*.py[cod] # .pyc, .pyo, .pyd 등 컴파일된 파이썬 파일들을 모두 무시합니다.
*$py.class # Jython 등의 다른 파이썬 구현체에서 생기는 클래스 파일을 무시합니다.
# -----------------------------------------------------------------------------
# Django 관련 (로컬 데이터 및 설정 제외)
# -----------------------------------------------------------------------------
*.log # 서버 실행 시 생기는 로그 파일들은 커밋하지 않습니다.
local_settings.py # 로컬 개발 환경만의 설정이 담긴 파일(있다면)은 보안상 제외합니다.
db.sqlite3 # 로컬 데이터베이스 파일입니다. 서버 DB와 섞이지 않도록 제외합니다.
db.sqlite3-journal # SQLite 임시 저널 파일입니다.
media/ # 사용자가 업로드한 이미지/파일이 저장되는 폴더입니다. (보통 S3 등으로 관리하므로 제외)
staticfiles/ # collectstatic 명령어로 모아진 정적 파일 폴더입니다. (배포 시 생성되므로 제외)
# -----------------------------------------------------------------------------
# 환경 변수 및 가상환경 (가장 중요 - 보안 및 용량)
# -----------------------------------------------------------------------------
.env # API Key, 비밀번호 등 민감 정보가 담긴 환경변수 파일입니다. 절대 커밋 금지!
.venv/ # Poetry가 프로젝트 내에 생성할 수 있는 가상환경 폴더입니다.
venv/ # 일반적인 가상환경 폴더 이름입니다.
env/ # 또 다른 일반적인 가상환경 폴더 이름입니다.
.idea
# -----------------------------------------------------------------------------
# VS Code 관련 (에디터 설정 제외)
# -----------------------------------------------------------------------------
.vscode/ # VS Code의 개인 사용자 설정(launch.json 등)이 들어있는 폴더입니다. 팀원과 설정 충돌 방지를 위해 제외합니다.
*.code-workspace # VS Code 워크스페이스 설정 파일입니다.
# -----------------------------------------------------------------------------
# Mac OS 관련 (시스템 파일 제외)
# -----------------------------------------------------------------------------
.DS_Store # Mac Finder가 폴더마다 생성하는 메타데이터 파일입니다. 윈도우/리눅스 사용자에겐 불필요합니다.
# -----------------------------------------------------------------------------
# 테스팅 및 기타
# -----------------------------------------------------------------------------
.coverage # 테스트 커버리지 결과 파일입니다.
htmlcov/ # 커버리지 리포트가 생성되는 폴더입니다..env
# 현재 작업 중인 폴더를 깃이 관리하는 로컬 저장소로 초기화합니다.
git init
# 폴더 안의 모든 파일과 변경사항을 다음 저장 목록(Staging Area)에 한 번에 담습니다.
git add .
# 목록에 담긴 파일들을 확정 지으며, 어떤 작업을 했는지 메모와 함께 버전을 생성합니다.
git commit -m "첫 번째 앱 뼈대 및 설정 완료"
# 현재 작업 중인 기본 가지(Branch)의 이름을 main으로 확실하게 지정해 줍니다.
git branch -M main
# 내 컴퓨터의 깃과 깃허브의 원격 저장소를 서로 연결해 주는 명령어
git remote add origin https://github.com/사용자이름/저장소이름.git
# 내 컴퓨터에 저장된 버전 기록들을 깃허브 원격 저장소로 밀어 올려(Push) 백업합니다.
git push -u origin main


DJANGO_APPS = [ # 장고 프레임워크가 기본으로 제공하는 앱 목록입니다.
...
]
THIRD_PARTY_APPS = [ # 외부에서 설치한 라이브러리 앱들입니다.
]
CUSTOM_APPS = [
...
"apps.Event",
...
]
INSTALLED_APPS = (
DJANGO_APPS + THIRD_PARTY_APPS + CUSTOM_APPS
)
from django.apps import AppConfig
class EventConfig(AppConfig):
name = "Event"
——————————————————————————————————————[비교]—————————————————————————————————————————
from django.apps import AppConfig
# Event 앱의 전반적인 설정을 관리하는 설정 클래스
class EventConfig(AppConfig):
# 데이터베이스에 데이터가 추가될 때 부여되는 고유 번호(기본키)의 타입을 자동으로 지정
default_auto_field = 'django.db.models.BigAutoField'
# 장고가 이 앱을 정확히 찾을 수 있도록 폴더 경로를 포함한 전체 이름을 명시
name = 'apps.Event'