이바닥이 원래 그래

EBADAC - OOPARTS : Out Of Place Articles.

microformat (3) Tag편

* 이 문제가 TatterTools의 문제인지, 아니면 단지 스킨이나 플러그인 제작자의 문제인지는 모르겠습니다.
여하튼간에, 몇몇 TT로 된 블로그들을 보다 보니, tag 쓰임이 잘못되어있는 것을 알게되었습니다.

tag는 microformat에 정식으로 채택된 포맷으로써 일정한 형식을 갖추도록 되어있습니다. 그런데 국내의 tag를 이용하는 많은 서비스들, 그리고 TT의 일부(!) 블로그들에 문제가 있네요.

tag의 기본 형태는 다음과 같습니다.
[html]

[/html]

1) rel=”tag” 속성을 가져야 합니다.
[html]
something
[/html]
이 코드는 rel=”tag”가 없기 때문에 틀렸습니다.

2) visible link여야 합니다.
즉,
[html]


[/html]
처럼 되어있을 경우, 이 tag는 “something”입니다.

4) tagPath의 가장 마지막 세그먼트가 tag입니다.
따라서
[html]

[/html]
같은 경우 “computer”가 tag가 됩니다. (”it/computer”도, “it, computer”도 아니지요.)

또한 그렇기 때문에
[html]

[/html]
같은 방식으로 쓴다해도, 이 태그는 “computer”입니다.

다음과 같은 경우는 어떨까요?
[html]

[/html]
네. 역시 computer입니다.
어떤 tag인지의 구분은 전적으로 URL경로에 의해 결정됩니다. URL에서 마지막으로 나온 Path 세그먼트-즉, 마지막으로 나온 ‘/ ‘ 다음에 나오는 단어가 tag가 됩니다. 절대로 URL중의 query파라메터를 tagPath로 쓰면 안됩니다.
[html]

[/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]

[/html]
보다
[html]

[/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]

[/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을 지키지 않아도 무방.)

6 Comments »

  공부학생 wrote @ November 21st, 2006 at 1:50 am

만약에 아래와 같은 경우이면
kkk

태그는 무엇인가요?…알려주세용…
대표적예는 서명덕기자 블로그인데요..
http://itviewpoint.com/tt/index.php?pl=2002
(서명덕님 공부하는 학생입니다..양해부탁해요^^*)

  공부학생 wrote @ November 21st, 2006 at 1:52 am

헉 a태그 안먹네요….머냐믄요
[a ref=”tag” href=”http://www.abc.com/tag/abc”]kkk[/a]

  eouia wrote @ November 21st, 2006 at 4:14 am

위에도 적었지만,

일단 서명덕기자님의 블로그에 사용된 Tag는 정확한 마이크로 포맷이 아닙니다.
이것이 태터툴즈시스템의 문제인지, 스킨의 문제인지, 아니면 태그출력관련 플러그인의 문제인지는 모르겠구요…

<a class=”tag” rel=”tag” href=”index.php?stag=다음”>다음</a>
처럼 되어있는 서명덕기자님의 태그형식이 마이크로포맷이 아닌이유는,
태그를 index.php?stag= 형태의 쿼리인자로 다루기 때문입니다. 만약 모든 서비스들이 제각각 자신들의 편의에 맞춰 다양한 포맷을 갖게 된다면 마이크로포맷의 표준화의 의의가 없겠죠?그래서 마이크로포맷을 따르는 태그서비스이려면 저런 형태의 태그는 허용되지 않습니다.

두번째로, 커멘트에 질문하신, kkk에 대한 답변은,
마이크로포맷을 따르는 태그서비스라면, 저 링크의 경우, 태그는 “abc”입니다. “kkk”가 아니라요. 국내의 태그들은 전혀 안지키고 있긴 합니다.

  표준을 간과한 댓가 at CunningWeb wrote @ January 4th, 2007 at 11:39 pm

[…] 각각의 사례는 사실 단독적으로는 별 문제가 없었겠습니다만, 두가지 비표준 사례가 만나다보니 문제가 커지고 서로가 잘못했다는 감정싸움이 되는 듯 하더군요. 뭐랄까, 이전부터 RSS나 microformat에 관해 이야기 해왔던 입장에서 본다면 안타깝다고나 할까요. […]

  daybreaker wrote @ January 10th, 2007 at 1:13 am

어우야님 글 보고 태터툴즈에서 절대경로로 태그 주소를 출력하도록 변경하였습니다.
http://dev.tattertools.com/changeset/2798

  비스켓 wrote @ January 10th, 2007 at 2:35 pm

테그라는 명칭을 붙이고자 한다면
마이크로 포멧을 꼭 지켜야겠네요!

Your comment