📚 FDE · 세션 · Django 이해 · L08

Django 정적 파일 (static)

작성일자 2026-07-30  ·  수정일자 2026-08-10  ·  강의차수 L08  ·  예상소요 15분

목표 화면에 쓰이는 Static(정적 파일)·Media(미디어) 가 무엇이고 어떻게 다른지, 누가 화면에 내보내는지 이해한다.

1. Static(정적 파일)이란?

Static(정적 파일) 은 화면에 쓰이는 CSS·JS·이미지처럼, 개발자가 미리 만들어 코드와 함께 올리는 파일입니다.

src/
├── static/          ← 이 강의 (정적 파일 · CSS·JS·이미지)
├── templates/
└── ...

'정적'이라고 부르는 이유는, 요청할 때마다 새로 계산해 바뀌는 게 아니라 만들어 둔 그대로 화면에 내려가기 때문입니다. 로고 이미지나 버튼 스타일은 누가 언제 봐도 똑같습니다.


2. Static vs Media

이름이 비슷한 Media(미디어) 도 있는데, 성격이 정반대입니다.

Static Media
누가 넣나 개발자가 만들어 코드와 함께 올림 사용자가 쓰면서 업로드
예 CSS, JS, 로고 이미지 프로필 사진, 첨부파일
git 코드라서 함께 올림 사용자 데이터라 따로 관리

핵심 구분은 Static = 우리가 넣는 것, Media = 사용자가 올리는 것 입니다.


3. 화면에 내보내는 주체

정적 파일 요청브라우저prodApache 가 직접 서빙devDjango 가 직접 서빙

같은 CSS 여도, 화면에 내보내 주는 주체가 환경마다 다릅니다.

  • prod: 웹서버(Apache)가 직접 내보냅니다. 이미 완성된 파일이라 앱을 거치지 않고 바로 주는 편이 빠르기 때문입니다.
  • dev: 앱(Django)이 직접 내보냅니다. 파일을 고치고 새로고침하면 바로 반영됩니다.

그래서 prod 에서는 배포할 때 화면 자원을 웹서버가 보는 자리로 모아 두는 단계가 필요합니다(배포 강의에서 다룹니다). 이 단계를 빼먹으면 "새 CSS 를 올렸는데 화면이 안 바뀌는" 흔한 문제가 생깁니다.


마무리

  • 핵심 정리: Static 은 개발자가 만들어 코드와 함께 올리는 화면 자원(CSS·JS·이미지), Media 는 사용자가 업로드하는 파일(프로필 사진 등)입니다. prod 에선 웹서버(Apache)가 직접, dev 에선 앱(Django)이 직접 화면에 내보냅니다.
  • 주의 사항: "prod 에 새 CSS 를 올렸는데 안 바뀐다" 싶으면, 배포 때 화면 자원을 모아 두는 단계를 빼먹은 경우가 많습니다.
  • 다음 시간: 여기까지가 'Django 이해'입니다. 다음 챕터에서는 데이터가 실제로 저장되는 데이터베이스부터 봅니다.
이 강의를 학습하셨나요?