RSS2.0

Developer/RSS 2006/04/06 12:09

기본적인 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입니다만 몇가지 틀린부분이 있어 수정해줬습니다.
^^;
즐프되세요

2006/04/06 12:09 2006/04/06 12:09
1982년 4월 2일 아르헨티나 군은 포클랜드 제도 3개섬에 대해 선발대 2,000으로 공격. 단 몇시간만에 영국 수비대를 무력화 시킨후 18,000명을 상륙시켜 완전 점령시켰으나 당시 철의 여인이었던 데쳐는 황급히 미국으로 날아가 전방을 보며 발사가 가능한 신형 사이더와인더 AIM-9L형을 수령하고 프랑스에 대해 납품되고 있던 엑소세 미사일에 대해 납품 중지를 요청합니다.
[한때 전대양에 함대를 파견하던 영국이..]

급조한 영국 파견대는 일반 항공모함이 없어 컨테이너 상선에다가 헤리어기를 수송시킬정도였고 항공모함이라고 해봤자 헤리어를 탑재한 미니항모 인빈시블호와 허미즈 밖에 없는 참담한 상황이었습니다. (3만톤급 대형항모는 이미 고철로 넘긴지 오래되었으며 이제 막 F-4M, K에서 기종전환을 마친 조종사들)
더군다나 더 웃긴것은 신형 헤리어를 수령한 상태라 채프, 플레어 살포기와 같은 기본 방어시스템도 없었기에 채프는 브레이크에 끼어 놓고 급할때는 브레이크를 펼쳐 살포하려고까지 한 영국군이었습니다.
[마구 긁어 모은 흔적이 보이는 헤리어들..허미즈함상입니다.]
아무튼 영국은 이렇게 민간 수송선까지 싸그리 긁어 모아서 43척을 만들어 내긴 했습니다. 그리고 지상병력까지 다 긁어 모아서 배에 싣고 포클랜드로 보내버렸으니 포클랜드까지 가는동안 함상 훈련으로 실전을 준비합니다.

그에 반해 아르헨티나 군은 정식 항공모함 "베인티싱코 데 마요"호(영국제... --;;)도 있었고 유명한 "벨그라노"순양함도 있었습니다.
[아르헨티나 항모. 역설적이게도 영국제입니다.]

4월 22일 상륙을 개시한 영국군은 해군과 해군의 전쟁에서 공군과 공군간의 전쟁을 준비하게됩니다. 영국 국가에 "신이시여 여왕을 보호하소서"라는 구절이 있다는데 그 기도를 신이 항상 들어주나 봅니다. 2차대전때와 마찬가지로 아르헨티나군은 400여 km떨어진곳으로 폭탄 싣고 왔다 가는것도 벅찬 거리였습니다. 즉, 작전지역에 나타나 폭탄 떨구고 모기지로 돌아가기 바쁜 빠듯한 연료적재량과 상대적으로 소형전투기로 영국의 헤리어기와 붙어야 했는데 결과는 완패! (아르헨티나 해군이 적극적이었다면 해볼만한 싸움이었겠지만.. 해군 항모는 처음부터 모항에 붙어있었습니다.)
목표물의 뒤를 완전히 추적해야만하는 사이더와인더와 전방위를 타겟으로 발사가 가능한 신형 사이더와인더의 차이로 인해 아르헨티나군은 총 79대 손실중 20대 이상을 헤리어에게 먹히고 헤리어는 9대손실중 5대는 지상포화, 4대는 사고, 공중전 손실을 0을 기록합니다.
[전문가들이 더 후한 점수를 줬던 닷소의 미라쥐3EA 미그킬러]

[우수한 감속능력과 최신형 AIM-9L로 당시하늘을 잡았던 헤리어]
아르헨티나 공군이 기량면이나 정신적인 면에서 아무리 우수하다고 할지라도 최신의 미사일과 짧은 거리에 있는 해상보급기지를 가진 영국군을 당해낼수는 없는 노릇이고 슈페르 에땅다르의 엑소세 미사일로 약간의 전과를 얻기는 하였지만 전쟁기간 내내 인비시블호나 허미즈와 같은 중요 목표에 타격하는것에는 실패하고 맙니다. 다시말해  제공권을 빼앗긴 상태에서 전쟁한 아르헨티나 군의 패배는 불보듯 뻔한 일이었습니다.
[당시 슈페르에땅데르 5기와 5발의 엑소세 미사일을 보유한 아르헨티나군]

[영국 최신 구축함 쉐필드를 격침한 슈페르와 조종사]

잠깐 아르헨티나 조종사의 능력에 대해 문제시 삼는 분들을 위해 당시 상황을 되짚어 보면 아르헨티나 공군의 폭격기에는 자유낙하 폭탄(바보폭탄)이 장착되어 있었는데 이걸가지고 영국의 제공권을 침투, 대공미사일 공격권을 지나 다시 근접 방공방을 돌파하고 폭탄을 투하한다음 제빨리 복귀해야하는 어려운 임무에도 불구하고 이들역시 채프와 플레어와 같은 기만 대책을 마련하지 못한채 출격해야만 했습니다.
영국은 이들에게 주력함 4척 침몰, 10척 대파라는 제물을 받여야만 했고 폭탄의 신관 작동불량으로 30%가량이 불발되었는데 만약 이게 다 터졌다면 20척정도는 너끈하게 잡아냈을것입니다. 그렇다면 영국의 전쟁수행능력은 가히 말할 수 없을 정도로 타격을 입었겠죠.

4월 26일 남부 조지아 섬을 탈환한 영국군은 5월 2일 겁을 잔득 먹고 있던 아르헨티나 해군에 결정적인 타격을 입힙니다.
영국 잠수함 컨커러호가 10800톤의 벨그라노호를 발견 어뢰2방으로 K.O시켜버리는 사건이 터졌고 잔득 움추려 있던 아르헨티나 해군은 바로 모항으로 도망가버렸습니다.
[HMS 컨커러]

[졸지에 바보된 벨그라노]
이제 근접지원해주던 해군마저 떠나버린 고립무원의 아르헨티나 군은 5월 21일 카를로스 섬을 뺐기게 되고 6월 14일 스텐리항을 뺐기면서 항복 문서에 싸인하는 처지가 됩니다.

여기서 잠깐 아르헨티나가 이렇게 강경하게 전쟁을 들고 나온이유를 살펴보면 포퓰리즘 정권의 등장으로 지나친 복지정책을 펼쳤고 그 결과 국고가 바닥난 상황에서 군사정권은 불만을 외부로 돌릴 필요성을 느껴 전쟁을 했다는것이 정설입니다.

자 이제 한일 문제와 독도문제를 보자면 일본의 분위기를 일단 보겠습니다. 일본은 현재 국가 채무 1위국 입니다. 국가가 보증한 기업은 은행대출이 자유로왔고 그덕에 부동산 버블로 인해 유동성의 함정에 빠진 결과 장기 불황국입니다.
고이즈미 아저씨가 개혁. 개혁하는데 결과론적으로는 우정국 민영화와 같이 정부자산을 민간에 팔아 국고를 채워 과거 보증 서줬던 기업의 빚을 대신 갚는 것 밖에는 방법이 없습니다.
아니면 연 10%이상의 경제성장을 하던가 아니면 국민들이 자발적으로 예금포기하고 0에서부터 다시 시작하던가 해야만 합니다.(국민의 예금에 시장원리와 관계없이 고이율의 이자를 주도록 했고 기업에 이돈을 마음대로 뿌린결과 기업은 투자보다 부동산취득에 열올리면서 도미노 현상으로 경제가 무너져버린게 바로 일본입니다. 기업도산>부동산폭락>개인도산>은행도산>다시기업도산...의 구조. 도산의 한가운데는 일본 정부가 있고... ㅡㅡ;; 한마디로 암울..)
일본이 독도, 센쿠센열도, 북방 4열도등에 목숨거는 이유가 여기있습니다. 이웃국을 나쁜넘으로 몰아서 내부 불만을 외부로 터트리려는 것이죠. 더군다나 지금 일본이 한번 몰아 붙이면 한번 해볼만도 합니다. 거기다 그 밑에 엄청난 자원이 있다고 하지않습니까? 그 자원을 정부에서 팔아도 우정국 몇개 파는것 보다 나을겁니다.
그러니 독도를 포기못하는 겁니다.

독도라는 지리적인 환경자체가 대규모 상륙이 불가능합니다. 울릉도 정도 되면 모를까요? 결국 전쟁이 터지게 된다면 해군의 밀어내기와 공군의 지원. 소수의 특수부대로 승부가 날것입니다.
해군력이야 톤수로 게임이 안됩니다. 암울하게도... 그러나 공군력은 AIM-120을 무장하고 있는 한국군에 유리합니다. 현대전은 BVR 즉, 시거리 밖 전투이기에 근접 기동전을 통해 승리를 쟁취할 이유가 없습니다. 10발쏘고 대충 2~3대만 떨어트려도 10일정도의 전투면 20~30대 격추 가능합니다. 포클랜드에서처럼 한 2달쯤 전투가 계속 된다면 AIM-120의 재고량이 부족해서 일본과 근접 기동전을 하지 않는한 절대적 우위를 차지할겁니다. (일본은 아직 AIM-7입니다. 이거 계속 락해줘야 합니다. 그에 비해 AIM-120을 쏘고 도망가면 알아서 추적해서 격추시킵니다. ㅡㅡ;;)
거기다 일본의 절대적인 약점은 울릉도를 공격해 올수 없습니다. 독도에 대해 영유권을 주장했지 울릉도를 어떻게 하려고 안했습니다. 여기서 일본의 문제점이 또 들어납니다. 레이다 음영지역인 울릉도에서 집결하여 집단 출격하는 고속정은 어떻게 상대해야 합니까? 고속정이든 FF급이든 DD급이든 대함 이사일 1~2발이면 끝납니다. 결국 미사일 발사 플랫폼을 얼마나 많이 가지고 있는가의 싸움에서 울릉도 뒤에 숨어 있는 한국해군에 대해 일본은 어찌할 방도가 없는것입니다. 만약 일본이 울릉도를 치면 국지전이 아니라 국제전으로 발전합니다. 그동안 독도는 일본땅이라고했던 일본이 작전상 울릉도를 공격했다가는 내 땅을 찾는다는 명분자체를 잃어버리는 것이 됩니다.
다시말해 한국 입장에서는 고속정에 하루 빨리 대함 미사일 발사대를 장착해야만 하겠습니다. 그리고 육지에서 발사가능한 대함미사일 플랫폼을 빨리 보급해야합니다.

결국 이를 통해서 일본 우익에 압박 선전을 해야만 하겠습니다. 울릉도에 대함미사일이 수십기 배치했다. 고속정에 대한미사일 장착 완료했다. AIM-120 수백발 더 들여왔다로 선전을 통해 우익으로하여금 독도를 단념케 해야합니다. 그래야 일본은 중국이나 러시아 문제로 눈을 돌릴것입니다.

허접한 글 감사합니다 ^^
2006/04/04 14:36 2006/04/04 14:36
소프트웨어 개발이 어렵다? 쉽다? 말들이 많습니다만 몇가지 원리만 고려한다면 현대 고급언어를 사용하는데 전혀 무리가 없습니다. 물론 ASM같이 저급언어(Low Level Language)는 논외로 하고 말이죠.

쉽게 다음의 패턴을 가집니다.

{환경선언}
{제어}
{종료}


아주 간단합니다.
실례를 들어보면 C는 다음과 같이 사용됩니다.

#include <stdio.h>
main()
{
 int i=0;
  for(i;i<10;i++)
     { 
         printf ("Hello World!\n");
     }
}


VB에서는
Private Sub FOrm_Load()
Static I
I = 1
for I = 1 to 10
msgbox "Hello World"
Next I
end sub


JAVA는
class HelloWorld {
       public static void main (String args[]) {
       for (;;) {
                System.out.print("Hello World ");
                }
       }
}


PHP는
<?
$i = 0;
for ($i;$i<10;$i++){
  echo "Hello World";
}
?>


ASP는
<%
dim i
for i=0 to 10
  reponse.write "Hello World"
next 
%>


아주 단순하죠? 환경설정>제어>마무리
이런구조입니다. 마무리는 현대언어에서 Gabege Collector 발전으로 거의 안하는 편이지만 이전에는 반드시 잡았던 메모리를 풀어줘야만 했죠.

프로그래밍을 어려워하시는분들 이제 쉽게 생각하세요
2006/03/31 17:11 2006/03/31 17:11