Django 프론트& 백엔드 개발

Django에서 URL 작성할 때 알아두면 좋은 규칙들

Data Jun 2026. 1. 3. 23:46

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 구조를 유지할 수 있습니다.