
① 왼쪽 폴더 구조가 실제 내 컴퓨터에 존재하는 파일들이에요.
② settings.py 에 두 줄을 등록하는 순간:
templates/ 폴더 → Django가 HTML 찾을 때 여기를 봄static/ 폴더 → Django가 CSS/JS 찾을 때 여기를 봄③ 브라우저가 요청하면:
urls.py → views.py 순서로 실행views.py에서 render(request, 'base.html') 호출settings.py = 지도 앱에 즐겨찾기 등록하는 것
TEMPLATES['DIRS']= "HTML은 이 동네에 있어"STATICFILES_DIRS= "CSS/JS는 저 동네에 있어"등록을 안 하면 Django가 길을 몰라서 파일을 못 찾음 → 오류!

TEMPLATES['DIRS'] 는 Django에게 HTML 파일을 어디서 찾아야 하는지 알려주는 설정이고, STATICFILES_DIRS 는 CSS, JS, 이미지 같은 정적 파일을 어디서 찾아야 하는지 알려주는 설정입니다. 두 설정 모두 "파일 탐색 경로"를 지정하는 역할을 합니다.
아래 흐름도로 전체 구조를 확인해 보세요.---
TEMPLATES['DIRS'] 는 Django에게 HTML 파일을 어디서 찾아야 하는지 알려주는 설정이고, STATICFILES_DIRS 는 CSS, JS, 이미지 같은 정적 파일을 어디서 찾아야 하는지 알려주는 설정입니다. 두 설정 모두 "파일 탐색 경로"를 지정하는 역할을 합니다.
아래 흐름도로 전체 구조를 확인해 보세요.---
TEMPLATES['DIRS'] — HTML 찾는 경로'DIRS': [BASE_DIR / 'templates']
역할: Django가 render(request, 'base.html') 같은 코드를 만났을 때, HTML 파일을 어느 폴더에서 찾아야 하는지 알려줍니다.
흐름:
1. views.py에서 render(request, 'index.html') 호출
2. Django가 TEMPLATES['DIRS']에 등록된 경로를 순서대로 탐색
3. 프로젝트루트/templates/index.html 발견 → 렌더링
4. 완성된 HTML을 브라우저에 응답
myproject/
├── templates/ ← 이 폴더를 Django가 탐색함
│ ├── base.html
│ └── index.html
STATICFILES_DIRS — CSS/JS/이미지 찾는 경로STATICFILES_DIRS = [BASE_DIR / 'static']
역할: CSS, JavaScript, 이미지 같은 정적 파일을 어느 폴더에서 찾아야 하는지 알려줍니다. HTML과 달리 렌더링 없이 파일 자체를 그대로 브라우저에 보냅니다.
흐름:
1. 브라우저가 <link rel="stylesheet" href="/static/style.css"> 요청
2. Django가 STATICFILES_DIRS에 등록된 경로를 탐색
3. 프로젝트루트/static/style.css 발견 → 파일 그대로 전송
myproject/
├── static/ ← 이 폴더를 Django가 탐색함
│ ├── style.css
│ ├── app.js
│ └── logo.png
| 구분 | TEMPLATES['DIRS'] | STATICFILES_DIRS |
|---|---|---|
| 대상 파일 | .html | .css, .js, 이미지 |
| 처리 방식 | 렌더링 (데이터 삽입) | 파일 그대로 전송 |
| 호출 위치 | views.py에서 render() | HTML의 {% static %} 태그 |
| 폴더명 관례 | templates/ | static/ |
두 설정 모두 "Django야, 파일을 여기서 찾아!" 라고 경로를 등록하는 것이 핵심입니다. 추가로 궁금한 부분 있으면 알려주세요!
TEMPLATES['DIRS'] — HTML 찾는 경로'DIRS': [BASE_DIR / 'templates']
역할: Django가 render(request, 'base.html') 같은 코드를 만났을 때, HTML 파일을 어느 폴더에서 찾아야 하는지 알려줍니다.
흐름:
1. views.py에서 render(request, 'index.html') 호출
2. Django가 TEMPLATES['DIRS']에 등록된 경로를 순서대로 탐색
3. 프로젝트루트/templates/index.html 발견 → 렌더링
4. 완성된 HTML을 브라우저에 응답
myproject/
├── templates/ ← 이 폴더를 Django가 탐색함
│ ├── base.html
│ └── index.html
STATICFILES_DIRS — CSS/JS/이미지 찾는 경로STATICFILES_DIRS = [BASE_DIR / 'static']
역할: CSS, JavaScript, 이미지 같은 정적 파일을 어느 폴더에서 찾아야 하는지 알려줍니다. HTML과 달리 렌더링 없이 파일 자체를 그대로 브라우저에 보냅니다.
흐름:
1. 브라우저가 <link rel="stylesheet" href="/static/style.css"> 요청
2. Django가 STATICFILES_DIRS에 등록된 경로를 탐색
3. 프로젝트루트/static/style.css 발견 → 파일 그대로 전송
myproject/
├── static/ ← 이 폴더를 Django가 탐색함
│ ├── style.css
│ ├── app.js
│ └── logo.png
| 구분 | TEMPLATES['DIRS'] | STATICFILES_DIRS |
|---|---|---|
| 대상 파일 | .html | .css, .js, 이미지 |
| 처리 방식 | 렌더링 (데이터 삽입) | 파일 그대로 전송 |
| 호출 위치 | views.py에서 render() | HTML의 {% static %} 태그 |
| 폴더명 관례 | templates/ | static/ |
두 설정 모두 "Django야, 파일을 여기서 찾아!" 라고 경로를 등록하는 것이 핵심입니다. 추가로 궁금한 부분 있으면 알려주세요!