FOAF나 XFN을 구현하기 위한 분들에게 간단한 도움을 드리고자 한 가지 메모를 남겨봅니다.

이 두 기술들은 모두 URL 기반으로 친구관계를 설정합니다. 즉, 인터넷에서의 사람을 구별하는 방법으로 URL이 사용된다는 것입니다. 따라서, 어떤 사이트가 FOAF, XFN을 지원한다면, 개인 페이지(Profile page)가 필요한것이고, 이 페이지의 URL을 기반으로 네트워크를 만들어가는 것입니다.

즉, 오해하기 쉬운 것은, HTML 내에 마이크로포맷이랍시고 한 사람의 친구관계에 있는 URL이 나타나면 항상 XFN 속성이나, FOAF 검출기능을 추가하는 것은 좋지 않습니다.  될 수 있으면 최상위 페이지에만 삽입하도록 하십시오.

왜냐하면, 역방향 링크를 구축한다고 보면, 내가 작성한 하위의 많은 페이지에서 한 사람에게 향하는 링크가 생기게 됩니다. 즉, 아이덴티티라는 측면에서 보면, 하위 페이지보다는 대표성있는 URL에만 링크가 만들어지도록 유도하는 것이 좋기 때문입니다.

이번 Textcube 1.6에서는 위 생각에 의거하여 개인 페이지라 할 수 있는 블로그의 첫화면, 즉 뒤에 아무런 경로가 추가되지 않은 최상위 페이지를 출력할 때(커버페이지를 사용하는 사람은 그 페이지에서)만, XFN 속성을 넣고, FOAF 검출 태그를 넣습니다. 예를 들어, XFN이 적용되어 있는 블로그롤(북마크 혹은 링크 목록)의 소스를 보시면
http://coolengineer.com/entry/Coding-nights

http://coolengineer.com/
의 소스에는 각각
<li> <a href="http://www.parkboo.com/" onclick="window.open(this.href); return false"> 박부</a> </li>
<li> <a href="http://www.bjsue.com/" onclick="window.open(this.href); return false"> 병주</a> </li>
<li> <a href="http://blueboh.net/" onclick="window.open(this.href); return false"> 서륀</a> </li>
<li> <a href="http://blog.naver.com/happyjames" onclick="window.open(this.href); return false"> 석영</a> </li>

<li> <a href="http://www.parkboo.com/" rel="contact met colleague"
onclick="window.open(this.href); return false"> 박부</a> </li>
<li> <a href="http://www.bjsue.com/" rel="contact met colleague"
onclick="window.open(this.href); return false"> 병주</a> </li>
<li> <a href="http://blueboh.net/" rel="contact met colleague"
onclick="window.open(this.href); return false"> 서륀</a> </li>
<li> <a href="http://blog.naver.com/happyjames" rel="contact met colleague"
onclick="window.open(this.href); return false"> 석영</a> </li>
으로 다른 것을 볼 수 있습니다.FOAF 검출또한 HTML head 태그 내에
<link rel="meta" type="application/rdf+xml" title="FOAF" href="http://coolengineer.com/foaf" />
와 같은 태그를 넣어 검출을 유도하는데, 마찬가지로 최상위 경로에서만 삽입되는 것이 좋습니다.
간단한 팁이지만, URL이 아이덴티티를 나타내고 그것을 구현하는 사람의 입장에서 공유할 만한 메모라고 생각됩니다.
신고
  1. proxies 2010.05.28 14:47 신고

    wordpress에서 blogrolls에 링크 수정을 하다가 처음 XFN에 관심을 갖게 되었네요. :|
    이 개념이 요즘 facebook f8에서 강조한 Social Graph와 연결 되는 개념이 되는건 가요?
    글쓰신 연도를 보니 2008년이군요. :|

    아 참 KLDP에서 종종 보이시는 그 분이신 듯 하네요?

텍스트큐브의 ACL을 바꿔놓은 장본인으로서 이제 근시일내에 이룰 수 있는 꿈을 하나 꿔보려고 합니다. 바로, XFN을 응용한 ACL 입니다. XFN은 "XHTML Friends Network" 이고, ACL은 "Access Control List"란 뜻입니다.즉, 어떤 홈페이지(XHTML)에 있는 친구정보를 기반으로 접근 권한을 주겠다는 것이지요.

가능한 상황은 다음과 같습니다.
  • 블로거 A씨는 자신의 블로그 중에 일부 게시물에 대해서 친구로 등록한(블로그 롤-사이드바의 링크 목록에 들어 있는) 사람에게만 읽기 권한을 주겠다.
  • 블로거 B양은 idtail.com이나 myid.net의 네트웍 혹은 그룹에 들어 있는 사람에 한해서 글을 읽을 수 있도록 제한 하고 싶다.
  • 블로거 C옹은 자신이 속한 협회의 블로그 D에 링크 되어 있는 동료들에게만 글을 읽을수 있도록 하고 싶다.
말그대로, 특정 그룹(?)을 위한 게시물을 운영하는 방법에 대한 방법을 제시하고 싶은 것입니다.

URL 소유자로서의 OpenID에 대해 쓴 글에서 비슷한 개념을 얘기한 적이 있는데요, 방문자가 특정 URL의 소유자임을 확인할 수 있고, 그 사이트가 신뢰하는 URL에 기재 되어 있는 친구 정보에 등록되어 있는 URL이라면, 특정 글을 읽을 수 있게 하는 것입니다. 즉, 위에 나열한 경우에 해당하는 친구나 동료의 목록을 XFN으로 표현하는 페이지가 있다면, 그 페이지가 신뢰할만하게 운영되고 있을 때, URL을 OpenID로 확인하여 접근 권한을 주는 것입니다.[각주:1]

XFN의 경우 HTML 페이지에 대한 접근이 인증을 받지 않고 누구나 접근 가능한 상태로 노출되므로, 멤버조차 알 수 없는 폐쇄 그룹을 만들기 약간 어려운 감이 없지 않아 있으나, 위에 나열한 상황의 경우 어느 정도 가능하리라 보여집니다.

이를 구현하기 위해 가장 쉬운 방법은 텍스트큐브의 분류관리화면에는 공개 설정을 이용하는 것입니다. 현재는 카테고리 자체를 폐쇄할 수 있습니다. 여기에 OpenID 로그인할 때, 등록된 카테고리별 XFN 페이지들을 방문하여 권한을 줄지 확인한다면 상당히 근사한 구현을 만들 수 있으리라 보여 집니다.

여러분들의 의견을 바랍니다.

PS. 현재 myid.net에서는 그룹정보를 가져오는 것에 대한 방법이 제시되어 있습니다.[각주:2] 아무나 어떤 그룹에 대해 XFN으로 접근이 가능한 것인가요?
  1. 블로그의 일반계정을 이용할 경우, OAuth를 도입하면 확인할 수 있습니다. [본문으로]
  2. <a href="http://myid.springnote.com/pages/300337.xhtml" target="_blank">http://myid.springnote.com/pages/300337.xhtml</a> [본문으로]
신고
  1. 지앙춘윈 2008.01.24 23:38 신고

    썰렁님, 글이 좋아 자주 들어오게 되네요.
    트랙백 달고 나서 요청사항이 하나 있어 글 올립니다.
    성격에는 맞지 않는거 같지만...

    metaweblog API말인데요.
    태터툴즈에서는 잘 동작하던데, 텍스트 큐브에서는 동작 오류가 있더군요.
    windows live writer같은거로 입력하면 태그정보가 손실되는 오류가 있었습니다.
    업그래이드 부탁드려요...

+ Recent posts