반응형
처음에 최근 웹사이트에서는 블로그의 흥성에 따라 RSS 전송이 당연한 일이 되었습니다.이에 따라 ′RSS 리더′나 ′애그리게이터′라 불리는 RSS를 효율적으로 수집하기 위한 툴이 나돌고 있습니다.이러한 소프트웨어의 인터페이스에서 Outlook적인 3페인형 윈도로 구성되어 있는 것을 자주 볼 수 있습니다.예를 들면 ′goo RSS 리더′죠.그런데 여기서 RSS 리더를 Outlook 식으로 하는 것보다는 항상 사용하고 있는 Outlook을 RSS 리더가 되는 것이 더 사용하기 쉽지 않을까 하는 생각을 누구나 할 것입니다.Outlook을 상용 메일러로서 사용하고 있는 사람이라면, 조작감도 같고, RSS를 읽는 것과 메일을 읽는 것이 일체화되어, 정보 수집 능력도 향상될 것 같은 생각이 듭니다.대상 독자 VBA를 사용한 프로그램 경험자를 상정하고 있습니다.필요한 환경 Microsoft Outlook과 MSXML 4.0 Service Pack 2이상이 필요합니다.XML 의 해석에 복잡한 것은 하고 있지 않기 때문에 MSXML 3.0 Service Pack 5 (SP5)에서도 괜찮을 것입니다.COM주소에 의한 Outlook의 RSS리더화 Outlook을 RSS리더로 하는 방법의 하나는 Outlook의 ′COM주소′를 사용한다는 것이 있습니다.[툴]→[옵션]→[그 외]→[상세 옵션]을 선택해,[COM 주소]를 클릭하고, 그러한 RSS 수집 기능을 가지는 애드인(플러그 인)을 추가할 수 있습니다.COM ad-in형의 Outlook용의 RSS 리더로서는 이하의 것이 현재 있는 것 같습니다(그 밖에도 있을지도 모릅니다만 미조사).RSS Popper Homepage
News Gator VBA로 만들까?RSS의 수신은 한정적으로(자기 사양으로) 실장하는 것이라면, 프로그래머가 하루에 할 수 있는 간단한 작업입니다.간단한 만큼 「COM」적인 조금 과장된 구조에 의지하지 않아도, 좋은 것이 아닌가? 예를 들면 Outlook의 VBA로 할 수 없는 것일까? 는직감이들게됩니다.Outlook의 VBA가 도대체 세상에서는 무엇에 사용되고 있는지, 바이러스의 작성 정도 밖에, 생각나지 않습니다만, 진지하게 사용하면 메일 처리에 관련된 대략적인 것은, 처리로서 기술할 수 있으므로, RSS 리더가 될 것 같은 기분이 듭니다.RSS 수신처리 흐름 Outlook의 VBA는 본래 메일러 처리를 자동화하는 것입니다.단적으로 말하면, 메일을 작성하거나 송신하거나 하는 것을 자동적으로 행할 수 있는 것입니다.이를 응용하여 Outlook을 RSS 리더화하기 위한 처리 흐름으로 일단 다음과 같이 정해 보겠습니다.RSS를 웹사이트에서 취득하다
취득한 RSS 정보를 분리하다
분리한 RSS의 각 정보를 하나의 메시지로 작성(투고)하다
투고한 메시지를 소정의 폴더로 이동하는 대상 RSS는 RSS 1.0 한정으로 합니다.다른 버전에의 대응은 나중에 각자 확장해 주세요.RSS 수신을 위한 인터페이스 RSS 수신하기 위한 인터페이스를 다음과 같이 정합니다.RSS 를 수신하는 폴더는[개인용 폴더]이하에 작성한 메일 아이템을 보존 가능한 임의의 폴더로 한다.
수신하는 RSS 의 URL 는 폴더의 속성에 있는[주소]에 기술해 둔다.
수신 처리용의 메인 루틴은 매크로로서 툴바로부터 클릭으로 호출한다.인터페이스의 작성[개인용 폴더]를 오른쪽 클릭해[폴더의 작성]을 선택.
[이름]을 「RSS Test」라고 한다.
작성한 폴더 「Rss Test」를 오른쪽 클릭하고[프로퍼티]를 클릭.
[홈 페이지]탭을 클릭해 「주소」에 수신하고 싶은 RSS 에의 URL 를 입력합니다.예를 들어 여기서는 @IT 의 [모든 포럼의 신착정보 15개] 의 URL인 [http://www.atmarkit.co.jp/rss/rss2dc.xml ] 이라는 URL을 넣어 둡니다.이상으로 인터페이스의 작성은 끝입니다.덧붙여서, 우연히 폴더에 URL을 쓸 수 있는 란이 있었기 때문에 이러한 간편한 사양으로 하고 있습니다만, 별도로 외부 컨피일로 해 두고, 그것을 읽는 사양으로 해도 좋습니다.각자 자신의 방법을 생각하는 게 중요해요.준비 RSS는 XML 문서로서 전달되고 있습니다.수신한 XML 파일을 해석하기 위해서, 무료로 Microsoft 에서 배포되고 있는, MSXML 를 이용합니다.여기에서는, 현시점에서의 최신판의 「4.0」을 인스톨 해 두면 좋을 것입니다.또, RSS의 사양에 대해서는, 「RSS -- 사이트 정보의 요약과 공개」등을 알기 쉬우므로 읽어 두면 좋을 것입니다.물론 몰라도 본가의 ′RDF Site Summary (RSS) 1.0′을 읽는 것도 중요합니다.VBA 준비입니다[툴]→[매크로]→[Visual Basic Editor]를 클릭합니다(또는[Alt]+[F11]키).Visual Basic Editor 가 기동하면, 프로젝트 탐색기에서[Project1]을 오른쪽 클릭해[삽입]→[표준 모듈]을 선택합니다.′Module 1′이 추가됩니다.여기에 코드를 기술합니다.이번, XML 의 해석에 MSXML 를 사용하기 위해, 프로젝트에 MSXML 로의 참조도 추가해 둡니다.[툴]→[참조 설정]으로, 표시되는[참조 가능한 라이브러리 파일]중에서[Microsoft XML, v4.0]에 체크를 하고,[OK]를 클릭합니다.MAPI 폴더 가져오기 현재 선택한 폴더에 대한 참조를 ActiveExplorer.CurrentFolder를 통해 가져오고 해당 폴더에서 WebViewURL 속성을 통해 URL 정보를 가져옵니다.Dim oRssFolder As MAPIFolder
Dim rssUrl As String
Set oRssFolder = ActiveExplorer . CurrentFolder
rssUrl= oRssFolder.WebViewURL 참고로 선택한 폴더는 MAPIFolder라고 하는 오브젝트로 되어 있습니다.이 오브젝트는 Outlook이 취급하는 여러 가지 아이템(메일이나 일정표 등)을 모두 동렬로 취급하기 위한 폴더 오브젝트입니다.MAPI라고 하는 것은 Microsoft가 제창하는, 메일을 취급하기 위한 표준적인 API입니다. XML의 동기읽기 URL을 취득하면 XML을 동기적으로 읽습니다.비동기가 아님을 주의해 주세요.(async의 기본값은 True.(비동기) 비동기일 경우 읽기가 끝나기 전에 다음 행이 수행되기 때문에 처리를 잘 써놓지 않으면 오류가 납니다.「동기」는 처리가 경직적이지만, 샘플로서는 간단하기 때문에, 여기에서는 동기로 갑니다.RSS 데이터 취득: 비동기 OFF 할 것
xmlDoc . async = False
If ( xmlDoc . Load ( rssUrl ) = False ) Then
Debug . Print xmlDoc . parseError . reason
Exit Sub
End If 에러가 발생하면 우선 이미디에이트 창에 표시하도록 하고 있습니다.채널 노드 처리 먼저 채널 노드를 처리합니다.XML의 노드조작은 최소한 단수선택이면 select Single Node 메서드, 복수선택(이른바 컬렉션)의 선택이라면 select Nodes 메서드를 사용한다는 것을 기억하시면 되겠습니다.이후, XML 노드 조작의 상세한 해설은 하지 않습니다.MSXML SDK 의 도움말을 봐 주세요.′RDF type′의 경우
strxpath = ′ // channel ′
′channel node 획득
Set chanNode = xmlDoc . selectSingleNode ( strxpath )
chantitle = chanNode . selectSingleNode ( ′ title ′ ) . Text
chanlink = chanNode . selectSingleNode ( ′ link ′ ) . Text
updatestr = chanNode . selectSingleNode ( ′ dc : date ′ ) . Text
chanupdate = ConvertStringToDate(updatestr) 날짜가 dc:date 라는 약간 특수한 형식으로 되어 있기 때문에 ConvertStringToDate 라는 Private 함수를 날짜형으로 변환하고 있습니다. 상당히 적당한 함수입니다.′dc:date타입의 문자열을 Date형으로 변환(적당히)
Private Function ConvertStringToDate ( ByVal strDate ) As Date
′ dc : date = 2005 - 01 - 13 T 22 : 31 : 00 + 09 : 00
yy = Mid ( strDate , 1 , 4 )
mm = Mid ( strDate , 6 , 2 )
dd = Mid ( strDate , 9 , 2 )
t = Mid ( strDate , 12 , 8 )
ConvertStringToDate = CDate ( yy & ′ / ′ & mm & ′ / ′ & dd & ′ ′ & t )
End Function 아이템 노드의 처리 각 아이템(뉴스의 실체)을 처리합니다.이하와 같은 코드를 씁니다.′各itemの取得
strxpath = ′//항목′
항목NodeList = xmlDoc.selectNodes(strxpath) 설정
′日付の新しいものが上になるように逆順にとりだす
Dimi As Long
문자열로 된 희미한 게시물 제목
길이만큼의 희미한 포스트 카운트
긴 조광 항목
itemlen = itemNodeList입니다.길이
i = 항목 len의 경우 - 1 ~ 0단계 - 1단계
etemNode = etemNodeList를 설정합니다.항목(i)
항목 제목 = 항목 노드.SingleNode(′제목′)를 선택합니다.텍스트
항목 링크 = 항목 노드.SingleNode(′링크′)를 선택합니다.텍스트
itemdec = itemNode입니다.SingleNode(′설명′)를 선택합니다.텍스트
dcdate = itemNode.단일 노드(′dc:date′)를 선택합니다.텍스트
항목 업데이트 = 문자열을 날짜로 변환(dcdate)
′件名:同じタイトルを防ぐために日付情報を含める
posttitle = 항목 제목 & ′[′ & dcdate & ′]′
′二重登録を防ぐためにタイトルを検索する:同じタイトルは登録しない
findItem = 또는 Rss 폴더를 설정합니다.항목 _
.찾기(′[pinditle] = ′′ & 우편 제목 & ′′
경우(항목 찾기가 아무것도 아님) 그러면.
′우편물′
PostItem = CreateItem(olPostItem)으로 설정
oPostItem.읽지 않음 = True
oPostItem.제목 = 우편 제목
strText = posttitle & vbCrLf & _
항목 링크 & vCCrLf & vCCrLf & _
항목 desc & vCRLf
oPostItem.본문 = strText
′直接保存はできない?ので
′いったん「受信トレイ」にpostしてmoveする
oPostItem.게시물
oPostItem.oRss 폴더 이동
사후 카운트 = 사후 카운트 + 1
종료할 경우
next自分の好みで、日付の新しいものが件名リストの上に来てほしいので、逆順に取り出しています(もとデータが日付順に並んでいると仮定して)。二重登録を防ぐために、タイトルを検索して同じメッセージがないかどtemをpostメソッドで投稿すると[受信フォルダ]にアイテムが保存されます。これをmoveメソッドで自分のrss収集用のフォルダに移動させるようにします。未読の処理また、新たに追加したメッセージは未読状態になって항목.수
′未読にする最初の位置を計算
첫 번째 인덱스 = 항목 합계 - (사후 개수 - 1)
′追加したもののみ未読フラグをつける
i = 항목 합계 첫 번째 인덱스에 -1단계
oRss 폴더.항목(i).읽지 않음 = True
nextマクロをツールバーに登録完成したルーチンをマクロとして登録します。今回は、仮に「getrss」というプロシージャ名にしました。登録は以下のようにします。[ツール]→[ユーザー設定]→[コマンド]の[分
右の[コマンド]から[project1.getrss]を選択して、ツールバーにドラッグします。マクロの実行rssを取得したいフォルダを選択した状態で、ツールバーのボタンを押すとフォルダに続々とニュースのリストが降って来ます。発展以上で、outlookでrsshtmlメーラーでもありますから、htmlとして受信、表示できるようにもできます。具体的には、セキュリティ的な問題がありますが、IFRAME의 경우onにしておき、iframeのsrcに各ニュースのリンク先を記述して、outlookで表示させれば、即席html型rssリーダーの出来上がりです。課題ポストメッセージを作成すると「差出人」欄がどうしても自分の現在アクティブなアカウント名になります。見栄えがちょっと悪いです(回避方法はあるのでしょうか?)。また、rssの定期自動取得機能が欲しいところです。vbaだと、力技でできなくもないですが、そこまでやるのならcomアドインを使ったほうがよいでしょう。まとめ既にあるものを使えば、わずか150行ほどのコrssリーダーにできる。
vbaでxmlを処理するときはmsxmlの使用が効率的。
メッセージを送信せずに保存するにはpostitemを使う。
iframeタグを使えば、urlだけでhtml文書を表現できる。
rssは単なるxml文書。참고자료 MSXML 4.0 SDK 문서
RSS -- 사이트 정보의 요약 및 공개
News Gator VBA로 만들까?RSS의 수신은 한정적으로(자기 사양으로) 실장하는 것이라면, 프로그래머가 하루에 할 수 있는 간단한 작업입니다.간단한 만큼 「COM」적인 조금 과장된 구조에 의지하지 않아도, 좋은 것이 아닌가? 예를 들면 Outlook의 VBA로 할 수 없는 것일까? 는직감이들게됩니다.Outlook의 VBA가 도대체 세상에서는 무엇에 사용되고 있는지, 바이러스의 작성 정도 밖에, 생각나지 않습니다만, 진지하게 사용하면 메일 처리에 관련된 대략적인 것은, 처리로서 기술할 수 있으므로, RSS 리더가 될 것 같은 기분이 듭니다.RSS 수신처리 흐름 Outlook의 VBA는 본래 메일러 처리를 자동화하는 것입니다.단적으로 말하면, 메일을 작성하거나 송신하거나 하는 것을 자동적으로 행할 수 있는 것입니다.이를 응용하여 Outlook을 RSS 리더화하기 위한 처리 흐름으로 일단 다음과 같이 정해 보겠습니다.RSS를 웹사이트에서 취득하다
취득한 RSS 정보를 분리하다
분리한 RSS의 각 정보를 하나의 메시지로 작성(투고)하다
투고한 메시지를 소정의 폴더로 이동하는 대상 RSS는 RSS 1.0 한정으로 합니다.다른 버전에의 대응은 나중에 각자 확장해 주세요.RSS 수신을 위한 인터페이스 RSS 수신하기 위한 인터페이스를 다음과 같이 정합니다.RSS 를 수신하는 폴더는[개인용 폴더]이하에 작성한 메일 아이템을 보존 가능한 임의의 폴더로 한다.
수신하는 RSS 의 URL 는 폴더의 속성에 있는[주소]에 기술해 둔다.
수신 처리용의 메인 루틴은 매크로로서 툴바로부터 클릭으로 호출한다.인터페이스의 작성[개인용 폴더]를 오른쪽 클릭해[폴더의 작성]을 선택.
[이름]을 「RSS Test」라고 한다.
작성한 폴더 「Rss Test」를 오른쪽 클릭하고[프로퍼티]를 클릭.
[홈 페이지]탭을 클릭해 「주소」에 수신하고 싶은 RSS 에의 URL 를 입력합니다.예를 들어 여기서는 @IT 의 [모든 포럼의 신착정보 15개] 의 URL인 [http://www.atmarkit.co.jp/rss/rss2dc.xml ] 이라는 URL을 넣어 둡니다.이상으로 인터페이스의 작성은 끝입니다.덧붙여서, 우연히 폴더에 URL을 쓸 수 있는 란이 있었기 때문에 이러한 간편한 사양으로 하고 있습니다만, 별도로 외부 컨피일로 해 두고, 그것을 읽는 사양으로 해도 좋습니다.각자 자신의 방법을 생각하는 게 중요해요.준비 RSS는 XML 문서로서 전달되고 있습니다.수신한 XML 파일을 해석하기 위해서, 무료로 Microsoft 에서 배포되고 있는, MSXML 를 이용합니다.여기에서는, 현시점에서의 최신판의 「4.0」을 인스톨 해 두면 좋을 것입니다.또, RSS의 사양에 대해서는, 「RSS -- 사이트 정보의 요약과 공개」등을 알기 쉬우므로 읽어 두면 좋을 것입니다.물론 몰라도 본가의 ′RDF Site Summary (RSS) 1.0′을 읽는 것도 중요합니다.VBA 준비입니다[툴]→[매크로]→[Visual Basic Editor]를 클릭합니다(또는[Alt]+[F11]키).Visual Basic Editor 가 기동하면, 프로젝트 탐색기에서[Project1]을 오른쪽 클릭해[삽입]→[표준 모듈]을 선택합니다.′Module 1′이 추가됩니다.여기에 코드를 기술합니다.이번, XML 의 해석에 MSXML 를 사용하기 위해, 프로젝트에 MSXML 로의 참조도 추가해 둡니다.[툴]→[참조 설정]으로, 표시되는[참조 가능한 라이브러리 파일]중에서[Microsoft XML, v4.0]에 체크를 하고,[OK]를 클릭합니다.MAPI 폴더 가져오기 현재 선택한 폴더에 대한 참조를 ActiveExplorer.CurrentFolder를 통해 가져오고 해당 폴더에서 WebViewURL 속성을 통해 URL 정보를 가져옵니다.Dim oRssFolder As MAPIFolder
Dim rssUrl As String
Set oRssFolder = ActiveExplorer . CurrentFolder
rssUrl= oRssFolder.WebViewURL 참고로 선택한 폴더는 MAPIFolder라고 하는 오브젝트로 되어 있습니다.이 오브젝트는 Outlook이 취급하는 여러 가지 아이템(메일이나 일정표 등)을 모두 동렬로 취급하기 위한 폴더 오브젝트입니다.MAPI라고 하는 것은 Microsoft가 제창하는, 메일을 취급하기 위한 표준적인 API입니다. XML의 동기읽기 URL을 취득하면 XML을 동기적으로 읽습니다.비동기가 아님을 주의해 주세요.(async의 기본값은 True.(비동기) 비동기일 경우 읽기가 끝나기 전에 다음 행이 수행되기 때문에 처리를 잘 써놓지 않으면 오류가 납니다.「동기」는 처리가 경직적이지만, 샘플로서는 간단하기 때문에, 여기에서는 동기로 갑니다.RSS 데이터 취득: 비동기 OFF 할 것
xmlDoc . async = False
If ( xmlDoc . Load ( rssUrl ) = False ) Then
Debug . Print xmlDoc . parseError . reason
Exit Sub
End If 에러가 발생하면 우선 이미디에이트 창에 표시하도록 하고 있습니다.채널 노드 처리 먼저 채널 노드를 처리합니다.XML의 노드조작은 최소한 단수선택이면 select Single Node 메서드, 복수선택(이른바 컬렉션)의 선택이라면 select Nodes 메서드를 사용한다는 것을 기억하시면 되겠습니다.이후, XML 노드 조작의 상세한 해설은 하지 않습니다.MSXML SDK 의 도움말을 봐 주세요.′RDF type′의 경우
strxpath = ′ // channel ′
′channel node 획득
Set chanNode = xmlDoc . selectSingleNode ( strxpath )
chantitle = chanNode . selectSingleNode ( ′ title ′ ) . Text
chanlink = chanNode . selectSingleNode ( ′ link ′ ) . Text
updatestr = chanNode . selectSingleNode ( ′ dc : date ′ ) . Text
chanupdate = ConvertStringToDate(updatestr) 날짜가 dc:date 라는 약간 특수한 형식으로 되어 있기 때문에 ConvertStringToDate 라는 Private 함수를 날짜형으로 변환하고 있습니다. 상당히 적당한 함수입니다.′dc:date타입의 문자열을 Date형으로 변환(적당히)
Private Function ConvertStringToDate ( ByVal strDate ) As Date
′ dc : date = 2005 - 01 - 13 T 22 : 31 : 00 + 09 : 00
yy = Mid ( strDate , 1 , 4 )
mm = Mid ( strDate , 6 , 2 )
dd = Mid ( strDate , 9 , 2 )
t = Mid ( strDate , 12 , 8 )
ConvertStringToDate = CDate ( yy & ′ / ′ & mm & ′ / ′ & dd & ′ ′ & t )
End Function 아이템 노드의 처리 각 아이템(뉴스의 실체)을 처리합니다.이하와 같은 코드를 씁니다.′各itemの取得
strxpath = ′//항목′
항목NodeList = xmlDoc.selectNodes(strxpath) 설정
′日付の新しいものが上になるように逆順にとりだす
Dimi As Long
문자열로 된 희미한 게시물 제목
길이만큼의 희미한 포스트 카운트
긴 조광 항목
itemlen = itemNodeList입니다.길이
i = 항목 len의 경우 - 1 ~ 0단계 - 1단계
etemNode = etemNodeList를 설정합니다.항목(i)
항목 제목 = 항목 노드.SingleNode(′제목′)를 선택합니다.텍스트
항목 링크 = 항목 노드.SingleNode(′링크′)를 선택합니다.텍스트
itemdec = itemNode입니다.SingleNode(′설명′)를 선택합니다.텍스트
dcdate = itemNode.단일 노드(′dc:date′)를 선택합니다.텍스트
항목 업데이트 = 문자열을 날짜로 변환(dcdate)
′件名:同じタイトルを防ぐために日付情報を含める
posttitle = 항목 제목 & ′[′ & dcdate & ′]′
′二重登録を防ぐためにタイトルを検索する:同じタイトルは登録しない
findItem = 또는 Rss 폴더를 설정합니다.항목 _
.찾기(′[pinditle] = ′′ & 우편 제목 & ′′
경우(항목 찾기가 아무것도 아님) 그러면.
′우편물′
PostItem = CreateItem(olPostItem)으로 설정
oPostItem.읽지 않음 = True
oPostItem.제목 = 우편 제목
strText = posttitle & vbCrLf & _
항목 링크 & vCCrLf & vCCrLf & _
항목 desc & vCRLf
oPostItem.본문 = strText
′直接保存はできない?ので
′いったん「受信トレイ」にpostしてmoveする
oPostItem.게시물
oPostItem.oRss 폴더 이동
사후 카운트 = 사후 카운트 + 1
종료할 경우
next自分の好みで、日付の新しいものが件名リストの上に来てほしいので、逆順に取り出しています(もとデータが日付順に並んでいると仮定して)。二重登録を防ぐために、タイトルを検索して同じメッセージがないかどtemをpostメソッドで投稿すると[受信フォルダ]にアイテムが保存されます。これをmoveメソッドで自分のrss収集用のフォルダに移動させるようにします。未読の処理また、新たに追加したメッセージは未読状態になって항목.수
′未読にする最初の位置を計算
첫 번째 인덱스 = 항목 합계 - (사후 개수 - 1)
′追加したもののみ未読フラグをつける
i = 항목 합계 첫 번째 인덱스에 -1단계
oRss 폴더.항목(i).읽지 않음 = True
nextマクロをツールバーに登録完成したルーチンをマクロとして登録します。今回は、仮に「getrss」というプロシージャ名にしました。登録は以下のようにします。[ツール]→[ユーザー設定]→[コマンド]の[分
右の[コマンド]から[project1.getrss]を選択して、ツールバーにドラッグします。マクロの実行rssを取得したいフォルダを選択した状態で、ツールバーのボタンを押すとフォルダに続々とニュースのリストが降って来ます。発展以上で、outlookでrsshtmlメーラーでもありますから、htmlとして受信、表示できるようにもできます。具体的には、セキュリティ的な問題がありますが、IFRAME의 경우onにしておき、iframeのsrcに各ニュースのリンク先を記述して、outlookで表示させれば、即席html型rssリーダーの出来上がりです。課題ポストメッセージを作成すると「差出人」欄がどうしても自分の現在アクティブなアカウント名になります。見栄えがちょっと悪いです(回避方法はあるのでしょうか?)。また、rssの定期自動取得機能が欲しいところです。vbaだと、力技でできなくもないですが、そこまでやるのならcomアドインを使ったほうがよいでしょう。まとめ既にあるものを使えば、わずか150行ほどのコrssリーダーにできる。
vbaでxmlを処理するときはmsxmlの使用が効率的。
メッセージを送信せずに保存するにはpostitemを使う。
iframeタグを使えば、urlだけでhtml文書を表現できる。
rssは単なるxml文書。참고자료 MSXML 4.0 SDK 문서
RSS -- 사이트 정보의 요약 및 공개
반응형