Django로 개발한 프로젝트를 실제 서비스로 배포하려면 단순히 runserver로 실행하는 것과는 다른 많은 요소들을 고려해야 합니다. 이 글에서는 다음 강의에서 다룰 예정인 Django 앱 배포의 핵심 고려사항들을 정리해봅니다.
✅ 1. 데이터베이스 선택 재고
- 개발 단계에서는 SQLite가 기본으로 설정되어 있어 간편하게 사용됩니다.
- 하지만 실제 배포 환경에서는 다음과 같은 문제가 있습니다:
- 단일 파일 기반이라 백업과 확장성이 떨어짐
- 서버에 배포 시 파일이 사라질 수 있음
- 해결책: PostgreSQL, MySQL 등의 외부 데이터베이스로 이전을 고려해야 합니다.
✅ 2. settings.py 설정 수정
- DEBUG, ALLOWED_HOSTS, DATABASES, STATIC_ROOT 등은 배포 시 필수로 조정해야 할 항목입니다.
- 사용하는 호스팅 서비스나 DB 종류에 따라 달라지므로 해당 문서 참고는 필수!
✅ 3. 정적 파일(static) 및 사용자 업로드 파일 처리
- 개발 중엔 runserver가 자동으로 static 파일들을 서빙해줍니다.
- 하지만 실제 배포 환경에서는 자동으로 제공되지 않습니다.
- 예: CSS, JS, 이미지 등
- python manage.py collectstatic 명령어로 정적 파일을 한 곳에 모아야 하며,
서버가 이 폴더를 서비스할 수 있도록 추가 설정이 필요합니다. - 사용자 업로드 파일도 별도로 서빙 경로를 설정해야 합니다 (MEDIA_URL, MEDIA_ROOT 등).
✅ 4. 호스팅 선택과 배포 방식
- Django 배포는 하나의 정답이 있는 게 아닙니다.
- 예시:
- Heroku
- Render
- PythonAnywhere
- AWS EC2 + Nginx + Gunicorn 조합 등
- 각 플랫폼마다 설정 방식이 다르기 때문에 공식 문서와 튜토리얼 참고는 필수입니다.
✅ 정리하며
이번 글은 배포 강의 섹션의 개요로서, 앞으로 다음 항목들을 하나하나 실습하며 배우게 됩니다:
- 외부 DB 연동
- settings.py 수정
- static/media 파일 설정
- 호스팅 서비스에 배포
개발에서 배포로 넘어가는 전환은 쉽지 않지만, 한 단계씩 따라오신다면 누구나 해낼 수 있습니다!
'Programming > Django' 카테고리의 다른 글
| 💡 getenv란? 환경 변수와 Django 설정의 연결고리 (3) | 2025.07.30 |
|---|---|
| Django 프로젝트에서 데이터베이스는 어떻게 선택해야 할까? 🧠 (0) | 2025.07.30 |
| Django | 함수형 뷰 vs 클래스형 뷰(GET/POST 요청 처리 방식 비교) (2) | 2025.07.29 |
| Django 이미지가 보이지 않는 이유? static 태그와 |add 필터의 함정 (2) | 2025.07.29 |
| Django에서 직렬화란? 세션 저장 시 발생하는 TypeError 해결하기 (2) | 2025.07.28 |