본문 바로가기
Programming/Django

[Python Django] ❓Django에서 Author 모델에 slug를 꼭 만들어야 할까?

by Mandy's 2025. 7. 23.

Django에서 slug는 사람이 읽기 쉬운 URL을 만들 때 자주 사용됩니다.
그런데 Book처럼 직접 보여지는 페이지가 아닌, Author 모델 같은 경우에도 굳이 slug를 만들어야 할까요?

이번 글에서는 Author 모델에 slug 필드가 필요한지, 불필요한지 판단할 수 있도록 상황별로 정리해 보았습니다.


✅ slug를 Author에 만들어야 하는 경우

1. 작가 상세 페이지가 존재하는 경우

예를 들어 사용자가 /authors/jk-rowling/ 같은 URL로 작가 정보를 확인할 수 있다면 slug는 꼭 필요합니다.

def get_absolute_url(self):
    return reverse("author-detail", args=[self.slug])

→ 검색 최적화(SEO)에도 좋고, 사용자가 URL만 보고도 어떤 작가인지 알 수 있죠.

2. 작가 이름으로 URL을 만들고 싶은 경우

  • /authors/j-k-rowling/, /authors/george-orwell/처럼
  • 작가 이름을 slugify하여 URL을 구성하면 UX가 더 좋아집니다.

3. 작가 페이지를 검색 또는 링크로 연결할 일이 많은 경우

  • 책 상세 페이지에서 "저자: George Orwell" 클릭 시 작가 페이지로 이동
  • 블로그나 외부에서 해당 작가 페이지로 직접 링크를 걸 경우
    → slug가 있다면 주소가 더 자연스럽고 기억하기 쉽습니다.

❌ slug를 Author에 만들지 않아도 되는 경우

1. 작가 개별 페이지가 없고, 단순 참조용일 때

  • Book에서 author.name만 보여주고 끝이라면
  • URL로 작가 정보를 보여줄 일이 없다면 slug는 굳이 필요 없습니다.

2. 작가 이름이 자주 바뀌거나 중복될 수 있는 경우

  • 작가가 개명하거나 필명을 바꾸는 경우 slug가 불일치할 수 있습니다.
  • slug를 수정하면 URL이 바뀌기 때문에 관리가 번거로워질 수 있습니다.

3. 내부 시스템 또는 REST API 전용인 경우

  • Admin이나 API에서 id를 사용하는 경우 slug는 오히려 불필요한 중복 필드일 수 있습니다.
  • slug를 기반으로 쿼리하지 않고 pk나 UUID로만 처리한다면 굳이 사용하지 않아도 됩니다.

🧪 정리: 언제 slug를 사용하는 것이 좋을까?

상황 Author에 slug 필요 여부

작가 개별 페이지가 존재함 ✅ 필요
작가를 클릭하여 페이지로 이동함 ✅ 필요
SEO가 중요한 서비스 (블로그, 쇼핑몰 등) ✅ 필요
내부용 도서관리 시스템 ❌ 불필요
REST API에서만 사용하는 모델 ❌ 불필요
작가 이름이 자주 바뀌거나 중복될 수 있음 ⚠️ 주의

💬 결론

slug는 사람과 검색엔진 모두에게 친화적인 URL을 제공하는 도구입니다.

하지만 그만큼 관리해야 할 점도 있고, 모든 모델에 무조건 사용할 필요는 없습니다.
특히 Author처럼 "연결된 모델"일 경우, 그 모델에 개별적인 라우팅 URL이 존재하는지가 slug 필요 여부를 가르는 핵심 기준입니다.


✨ 추가로 궁금하다면

  • slug가 중복되지 않도록 만드는 방법
  • slug를 자동으로 생성하고 수정하지 않게 관리하는 팁
  • Book과 Author를 함께 활용한 URL 설계 전략

원하신다면 다음 글에서 자세히 다뤄보겠습니다 😊


필요하시면 썸네일 문구, 태그 추천 (#Django, #slug, #URL설계, #모델디자인)도 도와드릴게요!