2006년 9월 18일 월요일

트랙백 200% 만들기

트랙백이 멍청한 기술이냐고 묻는 글을 보고…

트랙백이 멍청해진 이유는, 개발자들이 멍청하거나, 게으르기 때문이 절반정도 이유가 된다. (나머지 절반은 기획자의 잘못이다.)

먼저 핑백(Pingback)에 대해서 알아둬야 한다.
핑백은, 어떤 URL에 다른 URL에서 그 URL을 링크했음을 알려주는 간단한 신호였다. 트랙백과 거의 유사한 기능인데, 너무 간단한 구성이라 Notify이상의 기능을 제공하기는 힘들었다.핑백을 수신하기 위한 별도의 XML-RPC 프로그램이 필요하다.
이후 MovableType으로 유명한 sixapart사 에서 MT를 만들면서 Trackback이라는 규격으로 비슷한 기능을 제안하고, 그것이 널리 받아들여져 사실상 de facto 표준이 되었다. (하긴, MT는 모든 블로그의 de facto표준 아니던가.) 핑백과 트랙백의 가장 큰 차이는 URL에 대한 확장정보(title, author, excerpt등)가 포함되는 XML을 사용한다는 점이다. 핑백과는 달리 XML-RPC를 쓰지 않고 HTTP GET/POST 메쏘드를 사용함으로써 문서와 분리된 트랙백 시스템 구현이 용이하다.

그럼 도대체 트랙백이란 뭐에 쓰이는 물건인가.. 그리고 왜 멍청한 것처럼 불편하고 쓸모없어 보이는가?

핑백과 마찬가지로 트랙백은 어떤 문서에 다른 문서에서 그 문서로 링크를 연결했음을 알려주는 역할을 한다.
자세히 보면 두가지 레벨로 되어있음을 알 수 있다.

1) 이쪽 문서에서 외부 문서로 가는 링크
2) 외부 문서에서 이쪽 문서로의 역링크

대부분의 국산 블로깅 도구의 트랙백 시스템은 “2)외부 문서에서 이쪽 문서로의 역링크” 기능을 제공한다. 즉, 이쪽에서 트랙백을 보내면, 자동으로 그쪽 페이지에서는 이 곳의 URL을 표시해준다는 뜻이다. 이거야 익숙할 테고.

너무나 당연해서 간과해버리는 쪽은 오히려 “1) 이쪽 문서에서 외부 문서로 가는 링크” 쪽이다.
이곳에서 두가지 문제가 발생하는데,

(1) 이쪽 문서에서 외부 문서로 가는 링크를 사용자가 적지 않는다.
(2) 링크를 적는다 해도 트랙백이 자동으로 걸리지 않는다.

이 두가지 문제로 인해 국내에서 트랙백이 절름발이가 되어버린 셈이다.

(1)은 사용자의 문제일 수도 있다. (2)는 개발자의 문제이다.
그런데, 둘 다 트랙백에 대한 오해때문에 비롯된 것일 수도 있다.

즉, 우리는 무의식적으로 트랙백이란, “완성된 글을 가지고 다른 문서에 역링크를 거는 것”이라고 생각하곤 한다. 그렇기 때문에 트랙백 입력란이 있어서 트랙백 보낼 곳에 대한 트랙백 주소를 적거나 한다. 또 태터툴즈의 예를 보아도, “글을 쓰고, 트랙백을 보낸다.”라는 식이다.

허나, ping의 관점에서의 트랙백이란, 그저 본문중에 언급된 링크에 대해 notify를 해주는 기능이다. 그러니까 실은 사용자가 별도의 액션(트랙백 주소를 적고… 따위)을 취하는 건 잘못된 인터페이스라 할 수 있다.

무슨 소리인가 하면, 본문 중에 어떤 링크를 언급하면, 자동으로 트랙백이 날아가야 한다는 뜻. 국산 블로깅 서비스나 도구들이 이 기능을 빼먹은 바람에 절름발이 트랙백이 되버린 셈이다. (가장 대표적인 국산 블로깅 도구인 태터가 이런 기능이 되는지는 모르겠다. -_-a)
이를 위해 필요한 기술은 크게 두가지이다.

* Trackback Auto-discovery
문서URL에서 트랙백URL을 자동으로 찾아주는 기술이다.
이게 구현되어 있는 경우에는, 사용자가 글을 퍼블리쉬하면 자동으로 그 글에 링크된 문서URL을 찾아서, 해당 문서안에 기술된 트랙백 주소를 찾아 자동으로 트랙백 보내기가 된다는 뜻이다.
사용자는 트랙백에 대해 전혀 신경쓰지 않아도 된다. 심지어 그런 시스템이 돌아가고 있다는 사실조차 몰라도 상관없도록.

* Trackback RDF
Trackback Auto-discovery 기능을 만들려면 전제조건이 필요하다. 무엇인고 하니, 문서URL과 트랙백URL이 서로 다를 수 있는데, 그럼 어떻게 트랙백 주소를 찾아내느냐 하는 문제를 해결하는 것. 국내에서 블로그 및 트랙백 과 관련된 개발을 하는 개발자라면 익히 느꼈을 것인데, 시스템에 따라 트랙백 주소체계가 천차만별이라는 점이 개발자들을 늘 곤혹스럽게 한다.
허니, 누가봐도 이 문서의 트랙백 주소는 무엇이다라는 것을 알 수 있는 체계가 필요하고 그것이 트랙백 RDF이다.
즉, 이 문서의 트랙백 주소는 어디이다.. 라는 것을 정해진 포맷으로 기술하는 방식이다.
Trackback Auto-discovery를 지원하지 않더라도, 트랙백을 사용하는 시스템에서는 이 RDF들을 포함해야 한다. (Trackback Auto-discovery를 지원하는 다른 도구들을 위해)

트랙백 RDF 포맷은 간단하다. 지금 보고 있는 이 글의 트랙백 RDF는 다음과 같다.
[html]
<!--

xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">

dc:identifier="http://dnzin.com/cunningweb/?p=44"
dc:title="트랙백 200% 만들기"
trackback:ping="http://dnzin.com/cunningweb/?p=44/trackback/" />

–>
[/html]
이런 내용이 HTML문서 안에 포함되어 있으면, 프로그램이 자동으로 저 주소를 뽑아올 수 있으므로 자동 트랙백 보내기가 가능하다는 뜻.

이 두가지 기능이 없다보니, 사용자가 일일이 트랙백 주소를 찾아서 적어줘야 하고, 또 그러다보니 빼먹고 트랙백을 안보내는 경우도 있고, 또 반대로 트랙백은 보냈으되 어디로 보냈는지 다른 사람은 알 수 없는 경우도 생긴다. 이러니 불편하고, 멍청하다는 소리를 들어도 쌀 수 밖에.

현재 이런 트랙백 자동발견을 지원하는 국산 서비스나 도구가 있던가? (엔비는 지원하고, 블로그밈은 지원하는 걸로 알고 있다.)
그나마 트랙백 RDF를 잘 적어준 egloos는 고마운 편.
어쨌거나 그래서 국내에서는 아직도 트랙백을 보내려면 일일이 트랙백 주소를 적어주는 불편함을 겪어야만 한다.
원래 트랙백 주소 입력란은, 트랙백 자동발견이 안되는 문서로 트랙백을 보내거나, 혹은 본문에 언급되지 않은 제3의 주소로 트랙백을 보내라고 있는 것인데, 지금의 국내 서비스들 처럼 트랙백을 사용하기 위해 일일이 적어주라고 하는 것은 주객이 전도된 인터페이스. 하긴, 귤이 회수를 건너 탱자가 된 것이 어디 트랙백 뿐이랴.

헌데, 트랙백을 제대로 활용하려면 이걸로는 부족하다.

* Auto Trackback to URL
글을 쓸 때마다 특정 URL에 자동으로 트랙백을 보내주는 기능이다. 가장 간단히 활용할 수 있는 것은, 새글 notifying이다. 예를 들어 올블로그가 RSS 긁어가는 주기가 맘에 안든다면, 새 글을 쓸 때마다 올블로그로 트랙백을 자동으로 보내고 그러면 바로 올블로그가 새 글을 긁어가도록 하는 시스템같은 것이 가능하다. (이미 이런게 되던가? -_-a) 이런 식으로 팀블로깅이나 메타블로그에서 컨텐트 수집을 위해 사용할 수도 있다.
좀더 편리해지려면 카테고리별로 이 기능을 지원하면 매우 좋다.
예를 들어, “웹표준”에 대한 글을 쓸 때마다 매번 올블로그의 “웹표준 트랙백모임”주소를 입력하기란 힘들다. 그러므로 “웹표준”이라는 카테고리를 만들고, 그 카테고리에 쓰인 글은 자동으로 “웹표준 트랙백모임”에 트랙백 보내지기가 되면 사용자가 신경쓰지 않아도 되니 오죽 좋은가.

헌데, 이 기능은 국내에서는 조금 이상하게 변질되어 쓰이고 있다. egloos에서는 자신의 “밸리”로만 연결하는데 이 기능을 제공하고 있고, 태터의 경우에는 태터센터로만 보내도록 되어있다. (태터쪽은 잘 모름. 카테고리 별이 아니라 개별 글 단위로 선택하게 되어 있던가…) 물론 이글루스도 태터도 이것의 내부구현은 트랙백과 상관없이 되어있지만.

여튼 이런 기능은 잘 활용하면 얼마든지 확장응용이 가능하다. (생각하는 건 기획자 몫. :))

물론 현재 MT에서는 비밀 트랙백등의 기능도 구현되어 있고, 조만간(?) 트랙백 2.0 포맷이 새로 나온다고 한다.
허나 국내에서는 개발자들이, 혹은 기획자들이 부족하게 만든 트랙백 덕에 트랙백이 애물단지 취급받고 있는 현실이다.
거기다가 대부분 트랙백이란 “원거리 댓글”쯤으로 생각해버리는 바람에 아예 다른 활용방법은 생각조차 못하고 있다.
“원거리 댓글”은 확실히 트랙백의 멋진 활용법 중에 하나지만 너무 그것에만 매몰되는 바람에 ping이라는 트랙백의 기본출발을 놓치고 있는 것은 아닌지.

댓글 없음:

댓글 쓰기