웹 개발을 하다 보면, 우리는 사용자의 요청을 받아 적절한 응답을 반환하는 과정에서 URL이라는 중요한 요소를 다루게 됩니다. 이번 장에서는 Django REST Framework (DRF)를 포함한 Django의 전체적인 흐름에서 URL이 어떤 방식으로 사용되는지 알아보겠습니다.

4.1. URL이란?

URL(Uniform Resource Locator)은 웹상에 존재하는 모든 자원이 갖는 고유한 식별자입니다. 웹 페이지, 이미지, 비디오 클립 등 모든 종류의 데이터 리소스를 가리키며, 해당 리소스로 접근하기 위한 경로나 방법을 제공합니다. 이러한 URL은 API에서 특정 자원을 찾기 위한 '엔드포인트' 역할을 합니다.

URL은 일반적으로 다음과 같은 구조로 되어 있습니다.

scheme://netloc/path;parameters?query#fragment

각 부분은 다음과 같은 의미를 가집니다.

예를 들어, 아래와 같은 URL에서는,

[<http://www.example.com/articles/1;edit?section=introduction#paragraph1>](<http://www.example.com/articles/1;edit?section=introduction#paragraph1>)

http라는 스킴(scheme), www.example.com 이라는 호스트(host)에 위치한, /articles/1;edit?section=introduction#paragraph1 이라는 경로(path)와 파라미터(parameters), 쿼리(query), 프래그먼트(fragment)가 있는 자원(resource)에 접근하겠다고 해석할 수 있습니다.

Django와 Django REST Framework에서도 이런 개념이 그대로 적용됩니다. 특정 뷰(view) 함수나 클래스를 특정 URL에 연결(bind)하여 사용자 요청(request)을 처리하고 응답(response)합니다. 여기서 각각의 URL 패턴은 API 엔드포인트(endpoint)에 해당하며, 각 엔드포인트는 특정 자원(resource)에 대한 CRUD(Create, Read, Update, Delete) 연산을 수행합니다. 예를 들어, '/articles/' 엔드포인트는 게시글 목록을 보여주거나 새 게시글을 생성하는 역할을 하며, '/articles/1/' 엔드포인트는 id가 1인 게시글의 세부 정보를 보여주거나 수정하거나 삭제하는 역할을 합니다.

4.2. Django에서 URL 패턴 정의하기