RSD - 블로깅 클라이언트 소프트웨어와의 만남의 시작

바야흐로 블로그의 전성시대이다. 이미 우리는 블로그의 힘을 알고 있고, 이 글을 읽고 있는 여러분도 블로그의 세상에 살고 있는 것이다. 블로깅 즉 블로그에 글을 쓰는 일이 늘어남으로 흩어져 있는 자신의 글을 관리할 수 있는 프로그램의 중요성도 늘어나고 있다. Microsoft의 Windows Live WriterGoogle Docs (이전의 Writely) 서비스에서도 이런 상황을 확인할 수 있다. 이들 서비스는 단순히 문서 편집에 그치지 않고 개인들의 블로그로 글을 보낼 수 있도록 지원하고 있는 것이다. 앞으로 출시될 Office의 새로운 버전에서도 이미 이런 기능은 포함되어 있다고 한다. 그러면 우리는 이런 프로그램과의 만남을 어떻게 준비하여야 할까? 그 시작의 처음으로 RSD에 대해서 간단히 이야기 하고자 한다.
 
RSD(Really Simple Discovery)는 XML 형식의 파일로서, 블로깅 클라이언트 소프트웨어가 블로그 서비스 또는 소프트웨어를 찾고자 할 때 해당 서비스를 쉽게 노출하기 위한 규약이다. 이 규약의 XML을 사용하면 블로그 클라이언트 소프트웨어에서 사용자 이름, 비밀번호, 블로그 URL과 같은 일반정보의 요청을 줄이고, 쉽게 해당 서비스와의 연동을 할 수 있는 장점을 줄 수 있다. 즉 블로그 서비스를 이용하는 개인들이 블로깅 소프트웨어를 이용할 때 보다 쉽게 연동할 수 있다는 것이다.

RSD의 사용
RSD는 Daniel Berlinger에 의해 제안되었으며, 현재 1.0 버전이 사용되고 있다. 그 사용은 이름에서 알 수 있듯이 상당히 간단하다.
 
우선 블로그 서비스 페이지의 상단에 다음과 같은 구문을 위치한다.

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://rsd.xml의 URL" />

만일 위와 같은 태그나 해당 경로에 파일이 존재하지 않는 경우에는 블로그 클라이언트 프로그램은 다음과 같은 기본 경로를 확인하게 된다.

http://example.com/rsd.xml

정확한 RSD 파일을 지정한 경로에서 확인하게 되면, 블로그 클라이언트 프로그램은 RSD에서 정보들을 수집하여 사용하게 된다. 이렇게 되면 사용자는 간단한 설정만으로 해당 프로그램을 이용할 수 있는 것이다.
 
하나의 예를 살펴보자. 만일 여러분이 Windows Live Writer 프로그램을 이용할 경우, 작성한 문서를 블로그와 연동할 수 있다. 즉 Windows Live Writer의 문서를 바로 블로그로 전송할 수 있는 것이다. 이 작업을 위해서는 자신이 이용하는 블로그 서비스를 등록하는 과정이 필요한데 이때 사용되는 것이 바로 RSD 파일인 것이다.

위 메시지에서 볼 수 있듯이 해당 서비스에서 RSD 파일을 제공하고, 정확한 데이터가 공급되면 사용자에 의한 서비스 연동을 위한 API 선택과 URL 입력 단계가 줄어들게 되는 것이다. 블로그 서비스가 클라이언트 프로그램과의 연동을 위한 OpenAPI를 공급하고 있는 경우라면 사용자의 편의를 위해 RSD 파일의 지원은 기본 센스인 것이다.
 
 
RSD 형식 알아보기
그렇다면 RSD 파일에는 어떤 요소들이 포함되어야 할지 간단히 살펴보자.
 
RSD를 구성하는 기본 요소는 다음과 같다.
최상위에 <service> 노드를 가지며, 이는 전체 영역을 감싸게 된다. <service> 이하에는 다음과 같은 요소들이 포함된다.
 
     <engineName> : 서비스를 제공하는 엔진 이름에 해당하는 문자열
       <engineLink> : 해당 엔진 서비스의 홈페이지에 해당하는 URL 주소
       <homePageLink> : 해당 서비스를 사용하는 사용자 홈페이지의 URL 주소
       <apis> : 해당 서비스가 제공하는 API의 목록으로 하위 요소를 가짐
 
<apis>의 하위 요소는 다음과 같다.
API를 설명하는 <api> 노드가 복수로 존재할 수 있다. <api> 노드는 다음과 같은 필수 속성을 가진다.
       name : API의 이름을 표시하고, 이미 사용되는 이름들도 사용할 수 있음
       preferred : true/false 중 하나의 값을 가지며, 입력한 주소에서 지정한 전체 API의 지원 유무를 나타냄
       apiLink : 해당 API의 URL 주소
       blogID : 블로그 서비스형의 경우 필요한 blogID이며, 필요하지 않은 경우에는 생략 가능
 
<api> 노드가 가질 수 있는 선택 속성들은 다음과 같다.
       <docs> : 해당 API의 문서를 가리키는 URL 주소
       <notes> : 특성과 설정을 설명하는 문자로 사용할 수 있음
       <setting> : 설정이 필요한 경우 name 속성과 함께 그 값을 전달할 수 있고, 여러 개의 <setting>을 사용할 수 있음
 
RSD에서 이미 정의된 사용할 수 있는 API의 이름은 다음과 같다.
       Blogger
       MetaWeblog
       Conversant
       Manila
       MetaWiki
       Antville
       LiveJournal

■ RSD 예제

<?xml version="1.0" ?>
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd" >
<service>
<engineName>Blog Munging CMS</engineName>
        <engineLink>http://www.blogmunging.com/ </engineLink>
        <homePageLink>http://www.userdomain.com/ </homePageLink>
        <apis>
<api name="MetaWeblog" preferred="true"
apiLink="http://example.com/xml/rpc/url" blogID="123abc" />
<api name="Blogger" preferred="false"
apiLink="http://example.com/xml/rpc/url" blogID="123abc" />
<api name="Conversant" preferred="false"
apiLink="http://example.com/xml/rpc/url" blogID="">
                    <settings>
                        <docs>http://www.conversant.com/docs/api/ </docs>
                        <notes>Additional explanation here.</notes>
                        <setting name="service-specific-setting">a value</setting>
                        <setting name="another-setting">another value</setting>
                         ...
                    </settings>
                 </api>
        </apis>
    </service>
</rsd>


안타깝지만 아직 국내 블로그 서비스에서는 위의 RSD 파일을 찾아보기 힘이 든다. 이는 국내 블로그 서비스들이 블로그 OpenAPI 지원에 소홀하다는 이야기도 되는 것이다. 웹 2.0에서의 블로그의 중요성을 인식한다면 조금 더 열린 마음으로 서비스들을 이용할 수 있도록 여러 가지 표준들의 도입은 꼭 되어야 할 것이다. 이제는 블로그 서비스 외형의 치장보다는 내실을 다져야 할 시기가 온 것이다. 블로그 서비스를 담당하거나 새롭게 기획하는 분들이라면 이런 점을 같이 공유해 보도록 하자.

(작성자: 네오비스)
스마트플레이스의 글을 편리하게 구독하세요. 한RSS 추가 구글추가
크리에이티브 커먼즈 라이센스
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

트랙백 (0) | 덧글 (1)
트랙백 주소: http://www.smartplace.kr/trackback_post_10.aspx
스마트플레이스의 트랙백은 스팸방지를 위해 관리자 승인 후 등록됩니다.

water planning issues 2013-06-25 21:56:21     답글 삭제
스의 트랙백은 스팸방지를 위해 관리

이름 비밀번호
홈페이지
덧글
비밀글
RSS 피드
전체글한RSS 추가 구글추가
스마트가젯북스타일
Demo Day