📂 Django에서 MEDIA_URL과 MEDIA_ROOT 설정 완벽 이해하기

2025. 5. 14. 16:59·기술블로그-Django편
목차
  1. 1️⃣ MEDIA_URL과 MEDIA_ROOT란?
  2. 2️⃣ 코드 예시
  3. 🔍 설명
  4. 3️⃣ 모델에서의 활용 예시
  5. 4️⃣ 개발 서버에서 테스트하려면?
  6. ✅ 마무리 정리

📂 Django에서 MEDIA_URL과 MEDIA_ROOT 설정 완벽 이해하기

Django 프로젝트에서 이미지, 파일 업로드 기능을 구현할 때 꼭 필요한 설정이 있습니다. 바로 MEDIA_URL과 MEDIA_ROOT입니다.


1️⃣ MEDIA_URL과 MEDIA_ROOT란?

설정 의미 역할

MEDIA_URL 웹 주소 상에서 파일 접근 경로 브라우저가 파일을 요청할 때 사용
MEDIA_ROOT 실제 서버의 파일 저장 위치 업로드된 파일이 저장되는 폴더 경로

2️⃣ 코드 예시

MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'

🔍 설명

  • BASE_DIR은 프로젝트의 루트 경로
  • 실제 저장 경로는 /프로젝트/media/
  • 브라우저에서는 http://localhost:8000/media/파일명 으로 접근 가능

3️⃣ 모델에서의 활용 예시

class PostImage(models.Model):
    image = models.ImageField(upload_to='post/%Y/%m/%d')
  • 사용자가 업로드한 이미지가 media/post/2025/05/14/ 같은 폴더에 저장됨
  • 웹에서는 /media/post/2025/05/14/이미지.jpg 로 접근 가능

4️⃣ 개발 서버에서 테스트하려면?

urls.py 설정을 추가해야 합니다:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... 기존 url들 ...
]

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

이 설정은 DEBUG=True일 때 개발 서버가 업로드 파일을 직접 서빙할 수 있게 해줍니다.

운영 서버(Nginx 등)에서는 이 설정 대신 별도 static/media 파일 서빙 설정이 필요합니다.


✅ 마무리 정리

항목 설명

MEDIA_ROOT 업로드된 실제 파일이 저장되는 서버 경로
MEDIA_URL 해당 파일을 웹에서 접근할 수 있는 URL 접두어
urls.py 추가 설정 개발 중 직접 파일 서빙을 위해 필요

MEDIA_URL과 MEDIA_ROOT 설정은 Django에서 이미지 업로드, 파일 첨부 기능을 구현할 때 반드시 알아야 할 기본 지식입니다. 실제 프로젝트에서 파일 저장이 어떻게 이루어지는지 흐름을 꼭 이해하고 넘어가세요! 🚀

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

🔍 Django에서 'results = ...' 와 {'results': results}가 왜 둘 다 나오나요?  (0) 2025.05.15
🔍 Django ORM 쿼리 최적화 - select_related vs prefetch_related  (0) 2025.05.14
✅ Django에서 User 모델을 참조하는 두 가지 방식 비교  (0) 2025.05.14
📂 Django 모델에서 str() 함수 작동 흐름 완벽 해설  (0) 2025.05.14
📬 Django 이메일 전송 및 보안 서명 처리  (0) 2025.05.14
  1. 1️⃣ MEDIA_URL과 MEDIA_ROOT란?
  2. 2️⃣ 코드 예시
  3. 🔍 설명
  4. 3️⃣ 모델에서의 활용 예시
  5. 4️⃣ 개발 서버에서 테스트하려면?
  6. ✅ 마무리 정리
'기술블로그-Django편' 카테고리의 다른 글
  • 🔍 Django에서 'results = ...' 와 {'results': results}가 왜 둘 다 나오나요?
  • 🔍 Django ORM 쿼리 최적화 - select_related vs prefetch_related
  • ✅ Django에서 User 모델을 참조하는 두 가지 방식 비교
  • 📂 Django 모델에서 str() 함수 작동 흐름 완벽 해설
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (798)
      • Python (32)
      • 프로젝트 (113)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📂 Django에서 MEDIA_URL과 MEDIA_ROOT 설정 완벽 이해하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.