URI, URL, URN..

요즘은 회사에서 DDDS (Dynamic Delegation Discovery System) 관련한 작업을 하고 있습니다. DDDS는 URN (Uniform Resource Name)을 찾아서 URI나 서비스를 동적으로 연결해 주는 시스템입니다. URN을 URI로 바꾸고 그러다보니, URN, URI, URC, URL 등등 UR 씨리즈가 무척 많이 나오는데, 전에도 URI와 URL이 대체 차이가 무엇인가! 상당히 궁금했는데, 이번 기회에 문서를 읽어보게 되어서, 궁금하신 분이 많을까봐 한번 정리를.. 🙂

URL (Uniform Resource Locator)은 아시다시피 흔히들 많이 쓰는, http://xxx.yyy:1234/hehehe.html 같은 프로토콜로 시작해서 콜론찍고 그 다음에 주소를 쓰는 인터넷에서 접근할 수 있는 자원의 주소입니다.

한편, URN은 인터위키처럼 네임스페이스ID:컨텐트스펙 형식으로 이루어지는데, 예를 들어, 책 The D&I of FreeBSD O/S 같은 경우에 URN 주소로 urn:isbn:0201702452 이 되고, 최근 파이썬 보안 버그에 대한 VuXML 엔트리의 URN은 urn:uuid:6afa87d3-764b-11d9-b0e7-0000e249a0a2 이 됩니다. 이런 인터위키스러운 분야 외에도, 정규식 기반의 rewrite와 다단계 authority resolving, 우선순위 지정같은 것들을 지원해서, SIP과 연관된 분야에서 많이 사용되고 있는 듯 합니다.

그런데 URI는 대체 무엇인가! URL과 URN을 묶어서 그냥 URI .. ;;; 그 외에 URC (Uniform Resource Characteristics)도 URI에 속하는데, 이는 관련된 사진, 인용 목록, 리비전 기록 같은 것들을 제공하는 것이라고는 하는데, 실제로 쓰이는 예를 전혀 찾을 수가 없었습니다. 그런데, 굳이 URL도 알고보면 scheme이 여러가지가 있어서 새로 정의할 수 있는데 왜 굳이 URI밑에 URL을 두는가 한참을 고민을 헀는데, 그냥 단순히 URL은 그냥 옛날에 쓰이던 개념적인 것이고 현재로써는 그냥 비공식적인 용어라고 합니다.

그런데도, 실제로 URN, URI, URL, URC간의 서로 변환해주는 서비스를 정의하고 있는 THTTPURI간 변환 서비스 같은 곳에서는 URI, URL을 다른 용어로 따로 분리하고 있어서, 완전히 비공식적으로 치부하기에는 좀 무리가 있는 듯 합니다. 으흐흐~

지금 사용하고 있는 coreblog는 아직 모인모인 문법을 지원하지 않는 관계로 ReST냐 HTML이냐를 선택할 수 밖에 없는데, ReST에서는 그림을 못 쓰는 관계로 어쩔 수 없이, HTML코드로 로그를 쓰는데, 뭔가 참고를 할 때마다 링크 쓰기가 한이 없이 귀찮은게.. URN링크를 쓰면 자동으로 HTML링크로 바꿔주는 플러그인이라도 만들어서 붙여야겠다는 생각을 해 봅니다.. 으흐~