티스토리 뷰
웹 개발이나 인터넷 활동 중에 URL과 URI라는 용어를 종종 들을 수 있습니다. 이 둘은 비슷한 용어로 보일 수 있지만, 사실은 약간의 차이가 있습니다. 여기서는 URL과 URI의 차이에 대해 자세히 살펴보겠습니다.
URI(Uniform Resource Identifier)
URI는 Uniform Resource Identifier의 약자로, 인터넷에서 특정 리소스를 식별하기 위한 일반적인 용어입니다. 즉, URI는 개별적인 리소스를 식별하는 문자열의 표현 방법을 제공합니다. 이 URI는 두 가지 형태로 나뉩니다.
1. URL(Uniform Resource Locator)
URL은 리소스의 위치를 나타냅니다. 즉, 특정 리소스가 어디에 있는지를 지정합니다. URL은 프로토콜(예: HTTP, HTTPS), 호스트(웹 사이트의 도메인), 리소스의 경로 등을 포함합니다. 이를 통해 웹 브라우저는 특정 웹페이지를 찾을 수 있습니다.
2. URN(Uniform Resource Name)
URN은 리소스의 이름을 나타냅니다. 즉, 리소스의 위치를 지정하는 것이 아니라 리소스의 고유한 이름을 제공합니다. 하지만 URN은 현재까지는 널리 사용되지 않고 있습니다.
URI는 리소스를 식별하는 일반적인 개념이며, 그 중에는 URL이 있습니다. URL은 리소스의 위치를 지정하는 데 사용되는 특별한 형태의 URI입니다. 따라서 URL은 URI의 하위 개념이라고 할 수 있습니다. URI는 리소스를 식별하기 위한 범용 용어이고, URL은 그 중 하나인 특정 형태의 식별자입니다.
URL 사용 사례
웹 브라우징
웹 브라우징은 가장 흔한 URL 사용 사례 중 하나입니다. 웹 브라우저를 사용하여 인터넷에서 웹페이지에 액세스할 때는 해당 웹페이지의 URL을 입력하거나 주소 표시줄에 URL을 입력합니다.
예를 들어, "https://www.example.com/page.html"과 같은 URL은 사용자가 웹 브라우저에서 해당 웹페이지에 직접 접속하는 데 사용됩니다.
하이퍼링크
웹 페이지 내에는 다른 웹페이지로 이동할 수 있는 링크가 포함될 수 있습니다. 이를 하이퍼링크라고 하며, 사용자는 하이퍼링크를 클릭하여 다른 웹페이지로 이동할 수 있습니다. 하이퍼링크는 보통 텍스트나 이미지로 나타내며, 이를 클릭하면 해당 페이지의 URL로 이동합니다.
예를 들어, "Read more"라는 텍스트를 클릭하면 해당 내용이 포함된 다른 웹페이지의 URL로 이동할 수 있습니다.
API 요청
웹 API에 대한 요청을 보낼 때는 주로 URL을 사용합니다. 클라이언트는 웹 API의 엔드포인트에 대한 URL을 지정하여 서버에 요청을 보냅니다. 이를 통해 클라이언트는 서버에게 원하는 작업을 요청하고, 서버는 해당 작업을 수행한 후 결과를 클라이언트에 반환합니다. RESTful API에서는 각 리소스에 대한 URL을 사용하여 CRUD(Create, Read, Update, Delete) 작업을 수행합니다.
예를 들어, 클라이언트가 "https://api.example.com/users"와 같은 URL로 요청을 보내면 서버는 사용자 목록을 반환할 수 있습니다. 이러한 방식으로 URL을 사용하여 웹 API와 통신할 수 있습니다.
URN 사용 사례
URN(Uniform Resource Name)은 리소스의 이름을 특정합니다. 이 이름은 리소스가 위치가 아닌 고유한 식별자로 존재함을 나타냅니다. URN은 주로 리소스가 영구적으로 존재하고 위치가 변경되지 않는 경우에 사용됩니다. 여기에 몇 가지 자세한 예시를 살펴보겠습니다.
ISBN(국제 표준 도서 번호)
ISBN은 책을 식별하는 URN의 한 예입니다. 각 책은 고유한 ISBN을 가지고 있으며, 이를 통해 책을 정확하게 식별할 수 있습니다. 예를 들어, "ISBN:0-306-40615-2"와 같은 URN은 특정 책을 고유하게 식별합니다.
DOI(디지털 객체 식별자)
DOI는 학술적인 논문이나 출판물을 식별하는 데 사용되는 URN의 한 예입니다. 각 학술 논문이나 출판물은 고유한 DOI를 부여받으며, 이를 통해 식별됩니다. 예를 들어, "doi:10.1038/nature724"와 같은 URN은 특정 학술 논문을 식별합니다.
UUID(Universally Unique Identifier)
UUID는 고유한 식별자로, 위치에 관계없이 리소스를 식별하는 데 사용될 수 있습니다. 예를 들어, "urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66"와 같은 URN은 특정 리소스를 고유하게 식별합니다.
RFC(요청에 대한 응답)
RFC는 인터넷 표준 문서를 식별하는 데 사용됩니다. RFC는 "RFC"라는 URN 접두사를 사용하며, 각 RFC 문서는 고유한 번호를 부여받습니다. 예를 들어, "urn:ietf:rfc:7230"과 같은 URN은 특정 RFC 문서를 식별합니다.
URI 사용 사례 - API 설계
API 설계 시에 URL 대신 URI라는 용어를 사용하는 이유는 주로 개념적인 정확성과 유연성 때문입니다.
개념적인 정확성
API를 설계할 때는 URL보다는 보다 일반적인 용어인 URI를 사용하여 리소스를 식별하고, 이해 관계자들 사이에서 개념을 명확히 전달할 수 있습니다. URL은 URI의 하위 개념으로, 리소스의 위치를 나타냅니다. 하지만 API 설계에서는 리소스를 식별하는 것이 중요하므로, 보다 일반적인 용어인 URI를 사용하여 개념을 더 정확하게 표현할 수 있습니다.
유연성
URI는 URL과 URN을 모두 포함하는 개념이기 때문에, API 설계 시에 URL 대신 URI를 사용하면 보다 유연한 구조를 가질 수 있습니다. API가 발전하거나 변경될 때, 리소스의 위치가 변경되거나 URN 형태로 식별되는 경우에도 URI를 사용하면 API가 더 유연하게 대처할 수 있습니다. 따라서, URI를 사용하면 API의 확장성과 변화에 대처할 수 있는 유연성을 제공할 수 있습니다.
그러므로 API 설계 시에 URL 대신 URI를 사용하는 것은 개념적인 정확성을 높이고, API의 유연성을 높일 수 있는 좋은 방법입니다.
URI, URL, URN에 대한 개념을 자세히 살펴보았습니다.
이들은 모두 리소스를 식별하기 위한 중요한 용어이지만, 각각의 차이점과 사용 사례를 명확히 이해하는 것이 중요합니다.
URI : 리소스를 식별하는 일반적인 용어
URL : 리소스의 위치를 나타냄
URN : 리소스의 이름을 나타냄
URL은 웹 브라우징이나 API 요청과 같은 작업에서 주로 사용되고, URN은 리소스가 영구적으로 존재하고 위치가 변경되지 않을 때 사용됩니다. 이를 구분하여 사용해 웹 개발이나 인터넷 활동에서 더욱 효과적으로 작업할 수 있습니다.