Django 프로젝트 구조 이해하기: 나만의 디버깅 경험을 통한 학습
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 초보 Django 개발자
- 중급 Python 개발자
- 가상 환경 설정 및 프로젝트 구조 이해가 필요한 사용자
- 난이도: 중간 (기본 Python 지식 필요)
핵심 요약
- 가상 환경 설정:
python3 -m venv venv
명령어로 프로젝트별 의존성 분리 - 프로젝트 구조: 외부 폴더(
my_project/
)는 프로젝트 루트, 내부 폴더는 실제 구성 파일이 위치 - 핵심 파일:
settings.py
(설정),urls.py
(라우팅),models.py
(데이터베이스 설계),admin.py
(관리자 인터페이스)
섹션별 세부 요약
1. 가상 환경 생성 및 활성화
sudo apt install python3-venv
명령어로 virtualenv 설치python3 -m venv venv
명령어로 가상 환경 생성source venv/bin/activate
명령어로 환경 활성화 후pip install django
실행
2. Django 프로젝트 구조 분석
- 외부 폴더: 프로젝트 루트 경로 (예:
my_project/
) - 내부 폴더: 실제 설정 파일 (
settings.py
,urls.py
)이 포함된 핵심 영역 asgi.py
/wsgi.py
: 비동기 및 전통 웹 서버 프로토콜 허브 역할
3. `manage.py` 활용
- 개발 서버 실행, 앱 생성 (
startapp
), 마이그레이션, 쉘 접근 등 모든 프로젝트 관련 작업의 진입점
4. 앱 구조 이해
models.py
: 데이터베이스 설계views.py
: 요청-응답 주기 처리admin.py
: 관리자 인터페이스 커스터마이징
5. 템플릿 및 정적 파일 처리
{% %}
/{{ }}
블록으로 Django-aware 템플릿 작성STATICFILES_DIRS
설정으로 정적 파일 경로 관리media/
폴더: 사용자 업로드 파일 저장
결론
- 핵심 팁: 가상 환경 설정과 프로젝트 구조를 직접 경험하며 학습 (예:
startproject
/startapp
명령어 사용) - 실무 적용:
settings.py
에서 앱 등록 및 정적 파일 경로 설정을 통해 실질적인 디버깅 경험으로 구현 가능 - 최종 결론: Django 프로젝트 구조는 단순한 디렉터리가 아닌, 아키텍처 설계의 핵심으로 이해해야 성능 향상 및 확장성 확보 가능