Summary

  • 원문 「Cool URIs don't change」에서 Berners-Lee는 문서의 공개 주소와 현재의 저장 파일을 분리했다. 서버는 같은 URI를 새 파일이나 새 프로그램에 연결할 수 있다. W3C 주소 체계 연표는 이 글이 1998년 12월 스타일 지침에 추가됐다고 기록한다.
  • 사람 이름, cgi-bin, 파일 확장자, 문서 상태, 접근 등급, 주제 분류는 바뀐다. 오래 쓸 URI에 이들을 새기면 운영팀의 내부 정리가 외부의 링크 수리 작업이 된다.

새 메뉴가 옛 문을 대신하지는 못한다

사이트를 정리할 이유는 충분하다. 자료가 늘고 부서가 바뀌며 오래된 프로그램을 교체해야 한다. 그런데 그때마다 밖에서 쓰던 주소도 갈아야 할까. Berners-Lee의 1998년 글은 서버가 공개 URI와 실제 파일 위치를 따로 다룰 수 있다는 점에서 출발한다. 파일을 다른 곳에 놓고, 새 프로그램으로 화면을 만들면서도 독자가 아는 문은 남겨둘 수 있다. 정리의 수고는 바꾼 사람의 서버가 맡는다.

주소는 발행자의 사무실 밖으로 이미 나갔다. 다른 웹사이트가 링크하고, 연구자가 참고문헌에 적으며, 독자가 책갈피에 저장한다. 반면 디스크 경로와 서버 배치, 편집 담당표는 조직 안에서 관리한다. 운영자는 자신이 무엇을 옮겼는지 안다. 밖의 사람은 눌러 보고 오류를 만날 때까지 모를 수 있다. 새 사이트가 편해졌다는 발표가 그들에게는 안내장이 되지 않는다.

Berners-Lee는 당시 들었던 핑계를 열거했다. 더 나은 사이트를 만들려고 재구성했다. 지난 자료의 유효성을 판단하기 어려워졌다. 파일을 옮길 수밖에 없었다. John 대신 Jane이 관리한다. CGI 스크립트를 다른 프로그램으로 바꿨다. 실제 운영에서는 모두 일어나는 일이다. 그러나 공개 주소를 그 내부 사정에 묶어 둔 것이 별개의 결정이다. 같은 URI에서 새 파일을 내보내도록 서버의 대응 관계를 고치면 외부 인용은 그대로 살아남는다.

미국 국립과학재단의 당시 온라인 문서가 예로 나온다. 어떤 URL에는 cgi-bin, Perl 스크립트와 자료 요청 방식이 드러났다. 다른 경로에는 pubs/1998과 문서 번호가 들어갔다. Berners-Lee는 발행 연도와 문서 번호가 프로그램 이름보다 오래 맞을 가능성이 크다고 봤다. 이 비교는 1998년 주소 설계에 대한 판단이다. 그 주소들이 오늘도 모두 작동한다는 측정은 아니다. 문서의 연도는 남지만, 그 문서를 꺼내는 소프트웨어는 교체된다.

운영자는 오래된 URI가 어디에 복사됐는지도 전부 알 수 없다. 다른 사이트의 링크, 개인 책갈피, 종이에 적힌 주소가 있다. 새 메뉴로 자료를 찾아갈 수 있다는 사실은 이 경로들의 문제를 해결하지 않는다. 개편 비용이 낮아 보이는 까닭은 끊긴 링크를 고치는 사람의 시간이 프로젝트 장부 바깥에 있기 때문이다.

조직도보다 오래갈 이름을 붙여야 한다

저자 이름을 경로에 넣으면 담당자가 바뀔 때 어색해진다. draft는 문서가 발행되는 순간 낡는다. 내부용이나 회원용이라는 이름은 자료를 공개할 때 짐이 된다. .html은 오늘의 파일 형식을 문서의 정체성으로 굳힌다. 특정 서버의 임시 역할을 담은 호스트 이름도 장래의 시스템 교체를 어렵게 만든다. Berners-Lee가 본 공통점은 명확하다. 지금 관리하기 편한 정보가 몇 년 뒤에도 문서 자체를 설명하지는 않는다.

작성일은 성격이 다르다. 1998년에 만들어진 문서는 계속 1998년 문서이므로 보관 경로의 기준이 될 수 있다. latest라는 URI는 그때그때 최신 호를 가리키는 역할을 의도적으로 맡을 수도 있다. 하나는 특정 문서를, 다른 하나는 바뀌는 자리를 가리킨다. 발행자는 주소가 무엇을 약속하는지 먼저 정하고, 뒤의 파일을 바꿀 때 그 약속을 지켜야 한다.

주제별 분류는 더 교묘하다. 독자에게 편리한 목차이며, 조직은 담당 구역을 나누기 좋다. 하지만 주제의 경계와 이름은 이동한다. Berners-Lee는 W3C의 용어가 “MarkUp”에서 “HTML” 쪽으로 바뀐 사례를 들었다. 분류명을 URI에 박아 넣으면, 나중에는 옛 분류를 주소에 계속 두거나 기존 링크를 끊으며 새 분류로 갈아타야 한다. 내부 목차가 외부의 장기 이름을 지배하게 된다.

이름을 더 근엄하게 만들어도 관리자는 필요하다

당시에는 Uniform Resource Name, 곧 URN이 지속적인 식별자의 해답이 될 것이라는 기대가 있었다. 그래서 일반 URL의 단절을 대수롭지 않게 여기는 태도도 생겼다. Berners-Lee는 오래가는 URN을 운영할 수 있는 조직이라면 HTTP URI에도 같은 노력을 쓸 수 있다고 답했다. 두 방식 모두 이름을 관리할 사람, 현재 자료와 연결하는 기록, 응답하는 서버가 필요하다. 용어를 바꾼다고 서고를 맡을 사람이 생기지는 않는다.

원문은 실무의 어려움도 인정했다. 흔한 발행 도구는 안정적인 URI, 파일의 현재 위치, 판본, 번역, 검사값을 자동으로 함께 추적하지 못했다. W3C의 몇몇 페이지조차 이상적인 예가 아니었다. 그래서 필요한 것은 이사 때마다 새 주소를 내주는 도구가 아니라, 파일 위치나 책임자와 접근 권한이 바뀌어도 같은 공개 이름을 계속 쓰게 하는 도구였다.

W3C의 2004년 웹 아키텍처 권고는 원칙을 공식화했다. URI의 지속성은 소유자의 정책과 약속에 달려 있고, 식별 방식 자체가 이를 보증하지 않는다. 일관된 응답과 실제 이전 시의 HTTP 리다이렉트가 도움이 된다. 주소를 세상에 내놓은 쪽이 여전히 책임자다.