* 이 문제가 TatterTools의 문제인지, 아니면 단지 스킨이나 플러그인 제작자의 문제인지는 모르겠습니다.
여하튼간에, 몇몇 TT로 된 블로그들을 보다 보니, tag 쓰임이 잘못되어있는 것을 알게되었습니다.
tag는 microformat에 정식으로 채택된 포맷으로써 일정한 형식을 갖추도록 되어있습니다. 그런데 국내의 tag를 이용하는 많은 서비스들, 그리고 TT의 일부(!) 블로그들에 문제가 있네요.
tag의 기본 형태는 다음과 같습니다.
[html]
tagWord
[/html]
1) rel=”tag” 속성을 가져야 합니다.
[html]
something
[/html]
이 코드는 rel=”tag”가 없기 때문에 틀렸습니다.
2) visible link여야 합니다.
즉,
[html]
[/html]
처럼 안보이는 링크이면 안됩니다. 반드시 링크가 인간의 눈에도 보여야만 합니다.
3) tagWord는 중요하지 않습니다. 중요한 것은 tagPath입니다.
[html]
nothing
[/html]
처럼 되어있을 경우, 이 tag는 “something”입니다.
4) tagPath의 가장 마지막 세그먼트가 tag입니다.
따라서
[html]
computer
[/html]
같은 경우 “computer”가 tag가 됩니다. (”it/computer”도, “it, computer”도 아니지요.)
또한 그렇기 때문에
[html]
computer
[/html]
같은 방식으로 쓴다해도, 이 태그는 “computer”입니다.
다음과 같은 경우는 어떨까요?
[html]
computer
[/html]
네. 역시 computer입니다.
어떤 tag인지의 구분은 전적으로 URL경로에 의해 결정됩니다. URL에서 마지막으로 나온 Path 세그먼트-즉, 마지막으로 나온 ‘/ ‘ 다음에 나오는 단어가 tag가 됩니다. 절대로 URL중의 query파라메터를 tagPath로 쓰면 안됩니다.
[html]
something
[/html]
즉, 이렇게 쓰면 안된다는 말씀.
이런 경우에는 LAMP환경이라면 mod-rewright를 이용해 변경해줍니다. (다음과 같은 코드가 도움이 될 지도.)
[code]
RewriteEngine On
RewriteRule ^tag/(.*)$ index.php?tag=$1
[/code]
5) tagPath는 실제로 존재하는 URL이어야 합니다.
tag의 목적은 “tagging”자체라기 보다는, 그 tag가 실제로 어딘가에서 활용되기 위함입니다.
TT의 경우 tag모음 페이지가 있습니다. 당연히 그리로 연결되어야 합니다. 또 technorati 태그라면 technorati의 해당 tag페이지로 연결되어야 합니다. (하나의 태그로 여러개의, 혹은 불특정 태그서비스에 연결할 수는 없습니다.)
그래서 문제가 있는데, tagPath를 상대경로(”tag/something”처럼) 적는 것은 그다지 바람직하지 않을 수 있습니다. 왜냐하면 microformat자체의 목적은 machine-friendly한 코드의 생성이고, 이는 바로 machine-feed로 쓰이기 위함인데, 이 HTML문서가 도메인에서 분리되어 machine-feed로 쓰일 때 상대경로 주소는 실제 URL을 찾지 못하게 할 수도 있기 때문입니다.
따라서,
[html]
something
[/html]
보다
[html]
something
[/html]
이 더 바람직합니다.
6) tag의 스코프는 해당 페이지(의 컨텐트)에만 해당합니다.
이는 주로, tag수집서비스들을 인용할 때 흔히 저지르는 실수인데, 예를 들어 technorati라든가 eolin의 태그페이지로 가기위한 링크에 rel=”tag”를 붙이면 안됩니다.
또 tagCloud의 표시에도 rel=”tag”를 붙이면 안됩니다. 현재 표시되고 있는 페이지의 컨텐트를 직접 나타내는 tag에만 rel=”tag”를 붙이세요. 즉, 링크와 태그는 분리해서 사용해야 합니다. (태그의 a에 들어있는 href는 사용자가 클릭해서 그리로 가라는 목적보다는 기계로 하여금 이 tag가 무엇이며, 실제로 어떻게 사용되고 있는지를 알리기 위함입니다.)
7) javascript를 쓰면 안됩니다.
일부 TT블로그에는 tag를
[html]
[/html]
같은 스크립트를 이용하여 가져오는 경우가 있습니다. 이렇게 하면 HTML코드만으로는 tag를 찾을 수 없습니다. machine-feed로 사용하기 위한 microformat의 목적을 망각한 경우입니다.
비슷하게,
[html]
something
[/html]
처럼 쓰는 것도 안됩니다.
물론 당연히 AJAX 등의 javascript를 이용하여 페이지 자체를 만드는 서비스들도 tag를 제대로 사용하지 못하는 경우들이지요.
8)한글과 2단어 이상의 태그.
한때, tag는 한글서비스에서는 잘 맞지 않는다는 루머(?)가 있었지요. 공백이 포함된 두단어 이상의 용어를 표현하기 어렵다거나 하는…
실은 별 문제가 안됩니다. 일단 tag는 utf-8인코딩을 기본으로 합니다. RFC-3986을 참고하세요. 또 공백은 ‘+’나 ‘%20′으로 바꾸면 되지요.
그러니까,
[html]
어떤 태그
[/html]
처럼 쓰는 것이 아니라,
[html]
어떤 태그
[/html]
처럼 쓰면 됩니다. (eolin등에는 제대로 구현되어있는 것 같던데, 몇몇 블로그에서는 이 부분이 잘못되어 있네요. 지금보니 티스토리도 한글 태그가 잘못되어 있습니다.어떤 곳은 제대로 되고 어떤 곳은 또 틀렸고 그렇군요. 스킨쪽의 문제일지도 모르겠습니다.)
9)마치며…
tag하나로 깐깐하게 군다.. 는 소리가 들리는 것 같군요.(불친절한 금자씨 후유증입니다. ^^;)
그러나 tag는 microformat이고, microformat은 본시부터 machine-friendly한 feed를 목적으로하는 규격입니다. 즉, 엄격하게 형식을 맞춰야 한다는거죠.
그렇지 않고, “한국식(이라 쓰고 자기 맘대로…라고 읽는다.)”으로 변형된 tag서비스 같은 것은 자기모순입니다. 그런 것은 tag가 아니라 그저 multi-category일 뿐입니다.(하긴, 사실 국내에서는 대부분 그런 용도로 tag를 쓰고 있는 듯 합니다.)
구글이 자신의 서비스들에 들어있는 비슷한 기능에 “tag”대신 “label”이라는 용어를 쓰는 이유도 거기에 있습니다.
(지금보니 blotter.net도 “tag”대신 “keyword”라는 표현을 쓰는군요. 그렇다면야 microformat을 지키지 않아도 무방.)