2️⃣ Django 로컬 개발 환경 설정 및 실행
·
프로젝트
2️⃣ Django 로컬 개발 환경 설정 및 실행📌 환경별 설정 분리base.py에 공통 설정dev.py에 로컬 개발 환경용 설정 별도 관리📌 dev.py 주요 설정 예시from .base import *DEBUG = TrueALLOWED_HOSTS = ['*']DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'django-postgres', 'USER': 'postgres', 'PASSWORD': 'qwe123', # PostgreSQL 비밀번호와 일치해야 함 'HOST': 'localhost', # 로컬 PostgreSQL 서버 ..
1️⃣ 로컬 PostgreSQL 설치 및 초기 설정
·
프로젝트
1️⃣ 로컬 PostgreSQL 설치 및 초기 설정📌 PostgreSQL 설치 및 기본 계정로컬 PC에 PostgreSQL 설치기본 슈퍼유저 계정: postgres설치 중 비밀번호 미설정 시, 추후 직접 설정 필요📌 비밀번호 설정 및 변경터미널에서 postgres 사용자로 전환sudo -i -u postgrespsqlPostgreSQL 쉘 접속 후 비밀번호 변경ALTER USER postgres PASSWORD 'qwe123';\q비밀번호는 Django dev.py 설정과 일치시켜야 함📌 PostgreSQL 서버 상태 확인리눅스:sudo service postgresql statussudo service postgresql start윈도우: 서비스 관리자에서 PostgreSQL 서비스 실행 확인
6️⃣ 실전 팁과 자주 하는 실수 정리
·
프로젝트
6️⃣ 실전 팁과 자주 하는 실수 정리📌 Docker 캐시 클리어 빌드이미지 빌드 시 이전 캐시가 남아 문제가 발생할 수 있음docker compose build --no-cache 명령어로 캐시 무시하고 빌드 권장📌 환경변수 누락 문제DJANGO_SETTINGS_MODULE 미설정 시 기본 설정을 불러와 오류 유발docker-compose.yml에 반드시 environment로 명시할 것컨테이너 내 echo $DJANGO_SETTINGS_MODULE로 설정 확인📌 경로 문제BASE_DIR이 프로젝트 최상위 디렉터리 정확히 가리키도록 설정base.py 내 BASE_DIR = Path(__file__).resolve().parent.parent.parent 등STATIC_ROOT는 BASE_DIR 기..
5️⃣ 운영과 개발 환경 구분 및 배포 준비
·
프로젝트
5️⃣ 운영과 개발 환경 구분 및 배포 준비📌 DEBUG=True vs DEBUG=False 의미와 차이DEBUG=True개발환경용 설정에러 페이지에 상세 정보 노출Django 내장 서버가 정적파일 직접 서빙보안 취약점 존재 → 운영에 적합하지 않음DEBUG=False운영환경용 설정에러 페이지 일반화, 민감정보 숨김Django는 정적파일 직접 서빙 안 함정적파일은 Nginx, Apache 같은 웹서버가 서빙📌 운영환경에서 정적파일 서빙Django 정적파일은 collectstatic으로 한 곳에 모은 뒤Nginx 등을 사용해 /static/ URL과 연결해 빠르게 서빙예) Nginx 설정location /static/ { alias /app/staticfiles/;}📌 Docker 환경에서 웹서..
4️⃣ Django 템플릿과 정적파일 연동
·
프로젝트
4️⃣ Django 템플릿과 정적파일 연동📌 context_processors 설정의 중요성Django 템플릿에서 {% static 'path/to/file' %} 태그가 정상 작동하려면TEMPLATES 설정의 OPTIONS.context_processors에'django.template.context_processors.static'이 반드시 포함돼야 함누락 시 정적파일 경로가 잘못 생성되어 404 오류 발생 가능📌 템플릿 내 정적 파일 참조법{% load static %} 태그로 static 템플릿 태그 로드 와 같이 사용하드코딩된 경로 사용을 피하고, STATIC_URL 변경에도 유연하게 대응 가능📌 urls.py에서 정적 파일 서빙 설정개발 모드(DEBUG=True)에서는 urls.py에 다..
3️⃣ Static 파일 처리 문제와 해결
·
프로젝트
3️⃣ Static 파일 처리 문제와 해결📌 STATIC_URL과 STATIC_ROOT 개념STATIC_URL: 브라우저에서 정적 파일(예: CSS, JS) 접근 시 사용하는 URL 경로, 보통 /static/STATIC_ROOT: collectstatic 명령어 실행 시 모든 정적 파일이 모여서 저장되는 서버 내 디렉터리 경로📌 BASE_DIR 경로 문제 및 수정법BASE_DIR은 프로젝트 최상위 경로를 정확히 가리켜야 함base.py에서 BASE_DIR = Path(__file__).resolve().parent.parent.parent 처럼 3단계 상위 경로 지정STATIC_ROOT = BASE_DIR / 'staticfiles' 설정으로 정적파일 모을 위치 지정📌 collectstatic 실..
2️⃣ 환경 변수 및 설정 관리
·
프로젝트
2️⃣ 환경 변수 및 설정 관리📌 DJANGO_SETTINGS_MODULE 환경 변수 중요성Django는 실행 시 어떤 설정 파일(settings.py)을 사용할지 환경변수 DJANGO_SETTINGS_MODULE로 결정이 환경변수가 없거나 잘못 지정되면 Django가 기본 설정을 찾지 못해 오류 발생따라서, manage.py, wsgi.py, asgi.py 등에서 반드시 명시해 줘야 함📌 Docker Compose에서 환경변수 설정법docker-compose.yml에서 Django 서비스(예: my-django)에 아래처럼 환경변수 설정 추가environment: - DJANGO_SETTINGS_MODULE=config.settings.prod이렇게 하면 컨테이너 실행 시 올바른 설정 파일을 읽도..
1️⃣ 프로젝트 개요 및 초기 세팅 문제
·
프로젝트
1️⃣ 프로젝트 개요 및 초기 세팅 문제📌 프로젝트 개요Django 웹 애플리케이션과 PostgreSQL 데이터베이스를 Docker 컨테이너 환경에서 연동안정적인 개발 및 배포 환경 구축을 목표로 함📌 Docker와 Django, PostgreSQL 연동Docker Compose를 활용해 Django와 PostgreSQL 컨테이너를 함께 관리PostgreSQL 데이터베이스는 컨테이너 내부에서 ‘django-postgres’라는 데이터베이스 이름으로 생성Django는 PostgreSQL과 연동하도록 settings.py 내 DATABASES 설정 조정📌 초기 환경 문제 및 해결 과정PostgreSQL 버전 불일치로 인한 데이터 디렉토리 호환성 오류 발생Docker 볼륨과 이미지 캐시 문제로 인해 정상..