이런 마인드도 고쳐야할때가 아닌가 싶다...
소스코드를 공개하였다. 역시 코드가 고급이다..
RSS(Rich Site Summary, RDF Site Summary 또는 Really Simple Syndication)는
1990년대 중반에 생겨났습니다. 지금까지 다양한 변종이 나타났다 사라졌으며, 여러 단체와 개인이 소유권 논쟁을 벌였습니다.
그럼에도 불구하고 RSS는 한 웹 사이트에 담긴 정보를 여러 사람에게 배포하는 메커니즘으로 꾸준하게 각광을 받아왔고, 이러한
RSS의 인기를 발판으로 피드 구독기(
)
라는 새로운 웹 소프트웨어가 생겨났습니다. 상업적으로 판매되는 피드 수집기도 여럿 있지만, 자신의 피드 수집기를 직접 구현해
자신의 웹 응용 프로그램에 통합하기가 그리 어렵지 않습니다. 이 기사에서는 사용자 정의 가능한 RSS 피드 수집기를 구현해
봅니다. 완전히 돌아가는
함수 사용법도 소개합니다. 또한
완전히 돌아가는 RSS 피드 수집기 코드도 제공하므로 곧바로 내려 받아 사용할 수도 있습니다.

난이도 : 고급
Senthil Nathan, 선임 소프트웨어 엔지니어,
IBM
2008 년 3 월 18 일
웹 응용 프로그램이 급속하게 성장한 배경에는 Ajax나 웹 2.0과 같은 기술도 한 몫을 했지만 웹 응용 프로그램에 담긴
정보 자체의 가치 역시 중요하고 핵심적인 역할을 수행했다. 정보 제공자에게는 효과적으로 정보를 게시하는/배포하는 방법이, 정보
소비자에게는 효과적으로 정보를 구독하는/읽는 방법이 필요했다. 여기서 강력한 기능과 단순성 덕택에 웹 1.0 시대의 산물이던
RSS가 웹 2.0 시대와 이후 미래에도 중요한 위치를 차지하게 되었다.
RSS가 제공하는
우아하고 보편적인 형식을 사용하면 정보 제공자가 주기적으로 사이트에 가한 변경을 인코딩하여 배포하기 쉽다. 정보 제공자는 RSS
형식으로 변환한 정보를 전체 웹이나 (사내 사이트처럼) 제한적인 웹에다 게시하면 된다. 정보 제공자 반대편 끝에는 정보 소비자가
있다. 흔히 정보 소비자는 이 사이트 저 사이트를 돌아다니며 필요한 정보를 찾기에 급급하여 차분히 정보를 소화하지 못한다. 이
때 RSS 피드로 특정 범주에 속하는 정보를 한 덩어리로 받으면 소비자가 이 페이지 저 페이지를 뒤지고 돌아다닐 필요가
없어진다. 게다가 RSS 피드는 해당 범주에서 여러 정보 제공자가 제공하는 정보를 소비자를 위해 요약해 주기도 한다.
앞
서 언급했지만, RSS는 두 부분으로 나누어진다. 하나는 배포(Syndication)이고, 다른 하나는 피드 수집(Feed
Aggregation)이다. 정보 소비자에게는 피드 수집 기능이 중요하며, 여기서는 이 부분에 초점을 맞춘다. 이 기사는 정보
소비자 입장에서 사용자 정의 가능한 RSS 피드 수집기를 개발하는 세부 방법을 설명한다.
소개
웹
으로 정보를 제공하는 방식이 널리 퍼지면서 정보 제공자와 정보 소비자 모두가 여러 가지 난관에 직면하게 되었다. 정보 제공자
입장에서 주요 난관은 혼잡한 경쟁 속에서 돋보이는 내용으로 정보 소비자를 가능한 많이 끌어들이는 능력이다. 반대로, 정보 소비자
입장에서 주요 난관은 온갖 정보 제공자가 제공하는 수많은 범주에서 필요한 정보를 재빨리 뽑아내는 능력이다. 정보 소비자는 또한
찾으려는 정보를 가리고 주의를 흐트리는 그래픽 애니매이션이나 플래시 광고 등 부수 정보도 가려내야 한다.
웹
이 우리 생활에 이미 깊숙히 침투했기 때문에 개발자들은 소비자가 정보를 신속하게 그리고 꼭 필요한 내용만 가져오는 방법에 초점을
맞추어야 한다. 정보 제공자들은 웹 브라우저에서 휴대형 모바일 장비에 이르기까지 다양한 소비자 매체로 동적 정보를 제공하도록
점차 요구받고 있다. 이 장 초반에서 설명했듯이, RSS는 정보 배포와 수집에 따르는 많은 문제를 해결해 준다. RSS에
익숙하지 않다면 참고자료 절에 열거한 RSS 관련 기사를 읽어보기 바란다.
RSS
는 다양한 방식으로 (그리고 예기치 못한 방식으로) 인터넷에 커다란 잠재력을 안겨주었다. 말할 필요도 없이, 최근 몇몇 주요
소프트웨어 업체 경영진은 자기네 핵심 인터넷 사업을 이끌어나갈 원동력으로 RSS를 추가했다(자세한 내용이 궁금하다면 유명한
Web 2.0 Journal과 AjaxWorld Magazine 창립 편집장인 Dion Hinchcliffe가 쓴 명쾌하고도
간결한 기사를 읽어보기 바란다. 기사 링크는 참고자료 절에 있다). Hinchcliffe는 그림 1을
통해 RSS가 웹 2.0 정보 생태계를 활성화하는 모습을 보여준다. 위키, 블로그, 뉴스 서비스, 수집 서비스, 매시업 서비스,
검색 엔진 등 주요한 웹 2.0 구성요소는 모두 RSS로 연결되어 웹 2.0의 사회적 컴퓨팅이라는 비전을 실현한다.
그림 1. Hinchcliffe가 보는 관점: 웹 2.0에서 RSS가 수행하는 역할
현
재 사용 중인 RSS 버전은 여러 가지다. RSS 버전 0.91, 0.92, 2.0은 특정한 XML 형식으로 RSS 피드를
기술한다. RSS 버전 1.0은 나머지 버전과 XML 형식이 약간 다르다. RSS 피드 수집기를 개발할 때는 이러한 사소한
차이점을 염두에 두어야 한다. RSS 역사가 궁금하다면 참고자료 절에 있는 기사를 읽어본다.
지
금까지 RSS 형식이 중요하고 유용하다는 사실을 이해했으니, 이제 사용자 정의 가능한 RSS 피드 수집기를 개발해 보자. 개발
언어로는 PHP를 사용한다. PHP는 다양한 웹/XML 함수를 내장하므로 개발 속력이 높아진다는 장점이 있다. 게다가 PHP로
작성한 코드는 (젠드 프레임워크를 포함하는) 젠드 코어와 같은 PHP 서버에서 문제 없이 돌아간다. 피드 수집기를 개발하려면,
개발 시스템에 PHP를 설치하고 cURL(Client URL)과 XML 패키지를 구성해야 한다. 젠드 코어 PHP 서버를
권장하는데, 무료인데다 설치와 구성이 쉽다.
RSS 형식에 대한 기본 규칙을 간단히 살펴보자.
RSS 기본
지
금까지 애플, 마이크로소프트(Microsoft®), 넷스케이프, 유저랜드, RSS-DEV 작업 그룹 등 다양한 회사와 그룹이
RSS에 기여했다. 그 덕택에 RSS 형식도 여러 가지 버전으로 나뉘었다. 가장 주목할 만한 내용으로 (RSS-DEV가 개발한)
RSS 버전 1.0은 나머지 버전(역호환 형식을 공유하는 0.91, 0.92, 2.0 버전)과 다소 차이가 있다.
Listing 1은 RSS 버전 1.0 형식을 개략적으로 보여준다. 여기서 루트 요소는 <rdf>이고 자식 요소는 <channel> 하나와 <item> 요소 하나
왠지 흥미가 가는 세미나네요 ㅎㅎ
2008/04/28 11:08
같은 회사였으면 엄청(?) 관심있게 듣고 질문했을텐데요
ㅎㅎㅎ
저도 오늘 오후에 제가 작성한 프로그램 구조 리뷰 같은걸 팀내에서 하는데..
조금 걱정되네요ㅎㅎ 잘해야 될터인데 ^^;
아 글구 또 리플릴레이
--------------------------------------
그런데 병역특례라면 지금 나이가???
말씀하시는거 보면 좀 있어 보이신데?? 병역말씀하시니깐 사회초년생이신지?? ㅎㅎ
--------------------------------------
아 어느새 25살이네요;
음;; 뭐 알바로 두달 세달 다닌거 빼고 정식으로 다닌게 이제 곧 만 3년이네요 =ㅁ=;
병특은 아직 많이 남았지만서도 (훈련은 다녀왔지만 아직도 반도 못했네요
아침부터 서버때문에 정신이 없었네요. 이런 죄길슨. 해킹을 당한거 같기도 하구여. 보안쪽에 좀 더 신경을 써야 할거 같습니다.
보안전문가가 아닌이상 한계는 있는데. ㅠ.ㅠ 서버관리자라도 있으면 좋으련만..
날씨는 좋으아서 그런지 기분은 상쾌하네요.
좋은 하루 보내시고 리뷰잘하세요. ^^
하시는 분야에 최고가 되세요. ^^ 2008/04/28 13:06