야후! 파이프로 통합 RSS 만들기

영문 블로그를 개설하며 “한글 블로그와 영문 블로그의 RSS를 통합하겠다”고 했다. 그런데 의외로 일이 쉽게 풀렸다. 각종 웹 데이터를 손쉽게 연동해 주는 도구가 있었다. 이런 걸 두고 매시업(mashup)이라 하는데, 야후의 파이프(Yahoo! Pipes)가 대표적이다.  구글의 Mashup Editor는  닫힌 테스트(Beta Test) 중이라 더 이상 사용자를 받지 않는다. 마이크로소프트의 Popfly는 파이어폭스에서 제대로 동작하지 않는 듯 한데, 파이프보단 게임과 그래픽을 중시하는 듯 하다. Popfly는 막 살펴보기 시작해서 판단하기 힘들고, 파이프는 조금 더 데이터 지향적, 개발자 지향적이다. 여러 데이터를 묶고 조작해서 그 결과물을 RSS나 Json로 받게 된다. 이런 결과물은 일반 사용자가 쓰기엔 불편하지만 한번 더 가공하면 훨씬 유연한 결과를 얻을 수 있다. 어떤 의미에선 파이프는 B2B 서비스이고 Popfly는 B2C 서비스란 생각까지 든다.

어쨌거나 Pipes를 이용해 간단히 통합 RSS를 만들었다(참고로 통합 RSS는 대문에서만 구독가능하다).

야후! 파이프로 통합 RSS

나의 통합 RSS 설계도

설계도에 대해 딱히 설명할 바는 없다. 적어도 기술적으로 특이한 부분은 없다. 마치 MSSQL 서버의 DTS 서비스처럼 다이어그램 구성 요소를 이리저리 짜맞추면 끝이다. 그러니 어떤 의도로 만들었는지 그것만 간략히 설명해 보겠다.

첫 번째 Fetch Feed는 한글 블로그의 RSS와 영문 블로그의 RSS를 통합한다. 두 번째 Fetch Feed는 Flickr에서 최신 사진 정보를 가져오고, 그 데이터를 Filter에 보낸다.필터는 설명이 붙은 사진만 가려 낸다. 세 번째 Fetch Feed는 del.icio.us에서 최신 북마크 정보를 가져오고 필터를 통해 설명이 붙은 것만 추려 낸다.

설계도를 저장하면 매시업한 데이터를 확인하는 메뉴로 넘어간다. 거기서 결과물을 RSS로 구독할 수 있는데, 야후쪽 주소를 주기 때문에 간단한 PHP 페이지를 만들어서 이 문제를 해결했다.

<?php

error_reporting(E_ALL);

$request = 'http://pipes.yahoo.com/pipes/pipe.run?_id=8DJYdGec3RGEyPqEbbsjiw&_render=rss';

$response = file_get_contents($request);

if ($response === false) {
        die('Request failed');
}

print_r($response);

?>

야후! 파이프를 뒤지면 미투데이나 페이스북(Facebook)의 데이터를 조작한 사례가 있다. 하지만 이런 데이터는 함부로 공개 안 하는 게 좋겠다. 나만 글 쓰는 장소가 아니라 지인들과 내가 교류를 하는 곳이기 때문에 예기치 않게 다른 사람의 사생활이 노출될지도 모르기 때문이다.

주의! 구글 리더의 공유 아이템을 연동하다가 알게 된 사실인데, Pipes의 필터 기능이 한글을 제대로 처리 못한다. KAISTizen 님이 공유한을 찾으라 하면 못 찾고 KAISTizen을 찾으라 하면 잘 한다.

Advertisements

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu