💻 Django 프로젝트 세팅 완전 정복!

2025. 5. 14. 14:53·기술블로그-Django편

💻 Django 프로젝트 세팅 완전 정복!

Django 웹 개발을 시작할 때 반드시 거쳐야 하는 프로젝트 초기 세팅 과정! 이 글에서는 Poetry를 활용한 가상환경 설정부터 템플릿, 정적파일(static), 미디어(media) 설정까지 한 번에 정리해드립니다.


✅ 1. 가상환경 구축 (with Poetry)

📌 왜 Poetry인가?

Poetry는 패키지 관리 + 가상환경 관리를 통합해서 제공하는 툴로, 복잡한 환경 설정 없이 깔끔하게 Python 프로젝트를 관리할 수 있습니다.

🛠️ 설정 순서

# 프로젝트 디렉토리 생성 및 진입
mkdir myproject
cd myproject

# Poetry 초기화 (pyproject.toml 생성)
poetry init  # 대화형 입력 or 엔터로 기본 설정 진행

# Django 설치
poetry add django

# 가상환경 진입
poetry shell

👉 이후 Django 명령어들을 이 환경 안에서 사용할 수 있습니다.


✅ 2. Django 프로젝트 및 앱 구성

🔧 프로젝트 생성

django-admin startproject config .  # 현재 디렉토리에 생성

🔨 앱 생성 (예: blog 앱)

python manage.py startapp blog

📁 폴더 구조 예시

myproject/
├── config/            # 전체 프로젝트 설정
│   ├── settings.py
├── blog/              # 기능별 앱
│   ├── views.py 등
├── pyproject.toml     # Poetry 관리 파일

config는 Django 설정과 URL 경로를 담당하고, blog는 실제 기능을 구현하는 앱입니다.


✅ 3. templates 경로 설정하기

Django는 기본적으로 앱 내의 templates/ 폴더를 인식하지 않으므로, 전역 템플릿 경로를 지정해주는 게 좋습니다.

🔧 설정 방법

# config/settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],  # ✅ 여기에 추가
        ...
    },
]

📁 프로젝트 루트에 templates/ 폴더를 만들고 HTML 파일을 넣으면 Django가 렌더링할 수 있습니다.


✅ 4. static 경로 설정하기 (CSS/JS 등)

정적 파일(static files)은 브라우저에 그대로 전달되는 CSS, JS, 이미지 등을 의미합니다.

🔧 설정 방법

# config/settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR / 'static',  # ✅ 정적 파일 경로 지정
]

📁 static/ 폴더를 생성하고 내부에 css/, js/, img/ 등의 디렉토리를 관리하면 됩니다.

🚨 실무에서는 collectstatic 명령어로 정적 파일을 한 곳에 모으는 과정도 필요합니다.


✅ 5. media 경로 설정하기 (업로드 파일)

사용자가 업로드하는 파일(예: 이미지, 문서 등)은 media 파일로 구분합니다.

🔧 설정 방법

# config/settings.py
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'  # ✅ 저장 경로

서버가 실행 중일 때, 아래처럼 urls.py에서 미디어 경로도 추가해줘야 합니다:

# config/urls.py
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    ...  # 기존 path 목록
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

📌 TIP:

  • templates/는 화면을 꾸미는 HTML 파일
  • static/은 꾸미는 데 필요한 CSS, JS, 이미지
  • media/는 유저가 업로드하는 콘텐츠

이렇게 구성하면 Django 프로젝트의 뼈대를 제대로 갖춘 셈입니다! 💪

다음 단계에서는 Database 모델 정의와 FBV 뷰 구성, URL 연결 방식까지 이어집니다 → 계속 GO! 🚀

'기술블로그-Django편' 카테고리의 다른 글

🧩 Django Jinja 템플릿 완전 가이드  (0) 2025.05.14
🧱 Django Database Model 완전 정복  (0) 2025.05.14
🔍 Django ORM Field Lookups 완벽 정리  (0) 2025.05.14
🔍 Django ORM: get() vs filter() 차이점 완벽 정리  (0) 2025.05.14
🔧 Django에서 HTML 폼으로 DELETE 요청 처리하기 — Middleware 활용법  (0) 2025.05.14
'기술블로그-Django편' 카테고리의 다른 글
  • 🧩 Django Jinja 템플릿 완전 가이드
  • 🧱 Django Database Model 완전 정복
  • 🔍 Django ORM Field Lookups 완벽 정리
  • 🔍 Django ORM: get() vs filter() 차이점 완벽 정리
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (799) N
      • Python (32)
      • 프로젝트 (118) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    remittance
    btsdischarge
    btsjungkook
    btscomeback
    chinanightlife
    classaction
    homebartrend
    btsreunion
    urbantrends
    youngprofessionals
    college reunions
    americaparty
    life reflection
    smartphonedurability
    RM
    trumpmuskclash
    global politics
    basalcellcarcinoma
    hotcoffeecase
    americanlaw
    lawsuitculture
    travel ban
    bts
    newpoliticalparty
    self-growth
    뷔
    gpterror
    chatgpterror
    livebroadcast
    titaniumcase
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
💻 Django 프로젝트 세팅 완전 정복!
상단으로

티스토리툴바