URI과 URL의 차이
소셜 계정 로그인을 구현하는 중에 ‘URL’과 ‘URI’라는 용어가 자주 나왔는데, 그 차이점을 정확히 알지 못해서 혼란스러웠다. 그래서 오늘은 두 용어에 대해 차근차근 정리해보았다.
URI
먼저 URI는 "Uniform Resource Identifier"의 약자이다. URI는 웹에서 리소스를 식별하기 위한 모든 종류의 주소를 포함하는 개념이다. 즉, URI는 특정 리소스를 식별하는 데 사용된다. URI는 URL뿐만 아니라 URN(Uniform Resource Name)도 포함한다. 쉽게 말하면, URI는 "리소스를 가리키는 모든 종류의 식별자"라고 할 수 있다. 예를 들어, mailto:someone@example.com은 이메일 주소를 나타내는 URI이다. 이 주소는 특정 리소스를 식별하지만, 그 리소스에 접근할 수 있는 위치는 명시되어 있지 않다.
URL
반면에 URL은 "Uniform Resource Locator"의 약자이다. URL은 URI의 하위 개념으로, "리소스가 어디에 위치해 있는지"를 알려주는 역할을 한다. URL은 리소스의 위치를 나타내며, 웹 주소에서 흔히 사용하는 형태이다. 예를 들어, https://www.example.com/about와 같은 주소는 리소스가 어디에 있는지 구체적으로 알려준다. 또한, ftp://ftp.example.com/file.txt처럼 FTP 서버에 저장된 파일의 위치를 지정할 때도 URL을 사용한다.
소셜 로그인 구현에서 Redirect URI나 Callback URL을 설정할 때, 둘 다 리소스의 위치를 지정하는 것이지만, URI라는 용어가 더 넓은 의미로 사용된다. 하지만 실제로는 이 둘이 비슷한 의미로 쓰이기도 한다. 예를 들어, 구글 OAuth 2.0에서 소셜 로그인을 구현할 때, "리다이렉트 URI"는 사용자가 인증을 마친 후 돌아갈 주소를 가리키는 URI로, URL이기도 하다. 이 주소가 실제로 사용자가 접근할 수 있는 위치이기 때문에 URL로도 볼 수 있다.
오늘 배운 점은 다음과 같다:
- URI는 리소스를 식별하는 모든 주소를 포함하는 개념이다. 예시: mailto:someone@example.com, urn:isbn:0451450523
- URL은 리소스의 구체적인 위치를 나타내는 URI의 하위 개념이다. 예시: https://www.example.com/about, ftp://ftp.example.com/file.txt
- 소셜 로그인에서의 Redirect URI와 Callback URL은 사실상 같은 개념일 수 있지만, URI는 더 일반적인 식별자의 의미로 사용된다.
URL과 URI의 차이를 이해한 덕분에 소셜 로그인 구현에서 좀 더 명확하게 작업을 진행할 수 있을 것 같다.