Django로 웹 서비스를 만들다 보면
앞으로 아주 많은 URL을 작성하게 됩니다.
Django는
URL은 명확하고 일관되게 작성되어야 한다
라는 철학을 가지고 있고,
막상 작성하다 보면 헷갈리기 쉬운 부분들이 있습니다.
이번 글에서는 URL 작성 시 꼭 알아두면 좋은 규칙들을 간단히 정리해봅니다.
1. URL 패턴은 슬래시(/)로 끝내는 것이 기본
Django에서 URL 패턴은 보통 트레일링 슬래시(/)를 붙여서 작성합니다.
urlpatterns = [
path('foods/', views.index),
path('foods/banana/', views.fruit),
]
이때 URL 끝에 붙는 /를
트레일링 슬래시(trailing slash) 라고 합니다.
2. 도메인과 URL 경로는 다르다
www.google.com
www.google.com/
도메인 뒤에 붙는 슬래시는 있어도 없어도 동일합니다.
하지만 도메인 뒤의 경로(URL path) 에서는 이야기가 달라집니다.
/foods/
/foods
이 둘은 서로 다른 URL입니다.
3. 왜 이런 형태가 남아 있을까?
이 구조는 과거에
- 슬래시(/)가 붙은 URL → 디렉터리
- 슬래시가 없는 URL → 파일
을 의미하던 관습에서 시작되었습니다.
오늘날에는:
- URL이 실제 파일이나 디렉터리를 직접 가리키지 않고
- 대부분 데이터베이스나 로직을 통해 처리됩니다.
그럼에도 불구하고
이 관습은 URL 구조에 그대로 남아 있습니다.
4. Django는 트레일링 슬래시를 어떻게 처리할까?
Django는 기본적으로 다음과 같은 동작을 합니다.
- 슬래시(/)가 없는 URL 요청이 들어오면
- 먼저 해당 URL이 정확히 있는지 확인
- 없다면 슬래시를 붙인 URL로 자동 리디렉션
즉, 아래 요청이 들어오면:
/foods
자동으로:
/foods/
로 이동시켜 줍니다.
그래서 URL 패턴은 슬래시가 붙은 형태로 작성하는 것이 권장됩니다.
5. 링크 작성 시 슬래시 위치에 따른 차이
1️⃣ 앞에 슬래시(/)가 있는 경우
<a href="/banana/">이동하기</a>
- 도메인 기준 경로
- 현재 위치와 무관
현재 페이지가:
codeit.kr/food/
일 때 클릭하면:
codeit.kr/banana/
로 이동합니다.
2️⃣ 앞에 슬래시(/)가 없는 경우
<a href="banana/">이동하기</a>
현재 URL을 기준으로 경로가 이어짐
현재 페이지가:
codeit.kr/food/
라면:
codeit.kr/food/banana/
로 이동합니다.
6. URL 작성 시 기억하면 좋은 기준
- URL 패턴은 트레일링 슬래시를 포함해 작성
- 링크에서:
- /로 시작하면 도메인 기준
- /가 없으면 현재 URL 기준
이 규칙만 기억해도
URL 관련 헷갈림이 크게 줄어듭니다.
7. 정리하면
URL은 단순한 문자열처럼 보이지만,
웹 서비스 전체 구조를 결정하는 중요한 요소입니다.
- 일관된 형식으로 URL을 작성하고
- 슬래시의 의미를 이해하고 사용하면
앞으로 페이지가 많아져도
명확한 URL 구조를 유지할 수 있습니다.
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| Django Template과 render 이해하기 (0) | 2026.01.04 |
|---|---|
| Django에서 메인 페이지(빈 경로)가 404가 뜨는 이유 (0) | 2026.01.03 |
| ROOT_URLCONF의 역할 (0) | 2026.01.03 |
| include()의 개념 (0) | 2026.01.03 |
| Django에서 요청(Request)과 응답(Response) 흐름 이해하기 (0) | 2026.01.03 |