기본적인 HTML은 다음과 같이 데이터와 그것을 꾸며주는 디자인이 몽땅 들어가있습니다.
<html> <head>-생략-</head> <Body> <p><Font color="red" size="10">제목</Font></p> <Font color="blue" size="10">내용</font> </Body> </html> [/HTML]
즉, "제목"과 "내용"을 가져오기 위해서 위의 소스에서 HTML테그를 다 제거하더라도 제목과 내용을 사람이 아닌이상 알수가 없는 것입니다.
이에따라 제목과 내용이라는 데이터를 쉽게 공유하기위해 XML이 한때는 크게 유행했지만.. 사용하기 어렵다는 점때문에 아직도 그 사용이 요원합니다.
어차피 사람들이 필요로 하는 XML. 즉, 데이터를 공유하는것이 목적이라면 RSS(Really Simple Syndication) 규격으로만 맞춰놓자라는 취지에서 출발한 것이 오늘 말하고자하는 RSS입니다.
RSS의 기본 구조는 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> -생략- <item>-생략-</item> <item>-생략-</item> </channel> [/HTML]
일전에 프로그래밍은 패턴이라고 본 사이트에 간단히 언급한 적이 있는데 보는바와 같이 RSS에 대한 기본패턴은 위와 같습니다.
rss테그는 하나의 channel테그를 가지고 channel테그는 다수의 item테그를 가집니다.
* Channel 테그목록
- 필수
<title>~</title> : 서비스명
<link>~</link> : 본RSS를 서비스하는 사이트의 URL
<description>~</description> : 사이트나 RSS서비스에 대한 설명
- 옵션
<language>~</language> : 사용언어 (예:<language>ko</language>)
<copyright>~</copyright> : 카피라이트 (예:<copyright>Copyright Griffon 2000</copyright>)
<managingEditor>~</managingEditor>:편집자연락처
(예:<managingEditor>vic@wolf.co.kr</managingEditor>)
<webMaster>~</webMaster> : 웹마스터 연락처 (편집자 연락처와 동일)
<pubDate>~</pubDate> : 발행 시간 (RFC822포맷임 Sat,07 Sep 2002 00:00:01 GMT)
<lastBuildDate>~</lastBuildDate> : 마지막 변경 시간 (발행시간과 동일)
<category>~</category> : 카테고리(복수사용가능:<category>프로그래밍</category>)
<generator>~</generator> : RSS생성프로그램명 (예:<generator>테터툴즈</generator>)
<docs>~</docs> : 생성된RSS문서포맷을 정의한 문서URL(예:http://blogs.law.harvard.edu/tech/rss)
<cloud/> : RSS Feed를 받을 프로토콜 정의
(예:<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe"
protocol="soap"/>)
<ttl>~</ttl> : RSS를 받은뒤 cash를 보존할 시간 (예:<ttl>60</ttl>
<image>~</image> : 이미지. 최대 가로 144pixel, 세로 400pixel까지 지정가능함
<rating>~</rating> : 등급표시 (http://www.w3.org/PICS/ 참조)
<textInput>~</textInput> : 입력 박스의 특징 기술함. (스팩에서는 특정 검색엔진을 지원하기 위한것이라함)
<skipHours>~</skipHours> : 보존시간
<skipDays>~</skipDays> : 보존날짜
* ITEM 테그목록
item테그는 channel테그에 다수가 포함될 수 있으며 모든 item테그 구성요소들은 옵션입니다.
그러나 반드시 하나의 <titile>테그 또는 <description>테그를 가져야 합니다.
<title>~</title> : 아이템제목 (예:<title>RSS설명</title>)
<link>~</link> : 아이템의 URL
<description>~</description> : 아이템 설명
<author>~</author> : 저자
<category>~</category> : 카테고리
<comments>~</comments> : 아이템내의 코맨트 URL
<enclosure/> : 아이템에 포함된 미디어 속성 - Length는 byte단위임
(예:<enclosure url="http://www.scripting.com/mp3s/tennesseeJed.mp3"
length="3442648" type="audio/mpeg"/>
<guid>~</guid> : 시퀀스 번호 (생성된 RSS의 유일한 값/isPermaLink속성을 가짐.->링크여부)
(예:<guid isPermaLink="true">http://inessential.com
/2002/09/01.php#a2</guid>)
<pupDate>~</pupDate> : 생성일 (RFC 822규약)
<source>~</source> : 아이템 소스 URL
(예:source url="http://www.tomalak.org/links2.xml"> Realm</source>)
이제 전체적인 예를 들어 보겠습니다. (Wolfpack.pe.kr의 RSS로..)
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>Wolfpack.pe.kr</title> <link>http://www.wolfpack.pe.kr/</link> <description>글뻥이의 세상</description> <language>ko</language> <pubDate>Thu, 06 Apr 2006 02:11:46 GMT</pubDate> <item> <title>소프트웨어 개발 불변 패턴에 대해</title> <link>http://www.wolfpack.pe.kr/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EA%B0%9C%EB%B0%9C-%EB%B6%88%EB%B3%80-%ED%8C%A8%ED%84%B4%EC%97%90-%EB%8C%80%ED%95%B4</link> <description>개발은 쉽다</description> <category>Developer</category> <author>vicviper@wolfpack.pe.kr (글뻥)</author> <pubDate>Fri, 31 Mar 2006 08:11:30 GMT</pubDate> </item> <item> <title>C# vs C++ in Game Engine</title> <link>http://www.wolfpack.pe.kr/entry/C-vs-C-in-Game-Engine</link> <description>닷넷 게임엔진</description> <category>GAME</category> <author>vicviper@wolfpack.pe.kr (글뻥)</author> <pubDate>Wed, 29 Mar 2006 02:25:43 GMT</pubDate> </item> </channel> </rss> [/HTML]
제 사이트에서 테터툴즈로 생성된 RSS입니다만 몇가지 틀린부분이 있어 수정해줬습니다.
^^;
즐프되세요





494379
23
173





