life, saying, developing, . . . and so on
블로그를 짧은 시간(?)동안 운영하면서
한가지, 징크스 같은 게 생겼습니다.
그 것은 바로... "진지한 이야기는 통하지 않어!!" ...랄까.
아무튼 스크롤압박이 존재하는 글들은 어김없이
외면을 받는다는 절대적인 진리를 얻게 되었습니다.
그래서 이번에야말로,
정말 스크롤압박 없이 XML-RPC 에 관해서
시시한 고찰 하나를 해보려고 합니다.
...절대로 진지한 이야기 같은 거 아닙니다! (-_;;)
(출처: http://www.xmlrpc.com/, 각종 XML-RPC 응용 API들의 정의나 스펙에 대해 소개해주는 곳입니다.)
뭐 그런 겁니다.
이기종 환경 속에서 원격지의 특정 메소드를 실행하기 위해서,
요청(Request)과 응답(Response) 과정이 필요하게 되는데
XML 형식의 데이터를 교환하면서 그 작업을 하겠다는 겁니다.
...다 아는 것처럼 말씀드리고 있지만
사실 GR블로그에 MetaWeblog API 를 응용하기 전까지
저는 그야말로 아무 것도 모르고 있었습니다.
나름 그 때 삽질하면서 조사한 것들을 차후라도 잊지 않기 위해서
지금 이 글을 남기고 있지만 명료하게 소개를 할 수 있을런지
걱정이 됩니다.
정정부터 하겠습니다.
일단 위의 『XML 형식으로 데이터를 교환한다』는 설명은
지나치게 추상적인 설명입니다.
사실은 XML-RPC 에서 RPC(Remote Procedure Call)에 대해
먼저 알아보고 나서 이야기를 해야 더 순서에 맞다고 할 수 있겠습니다.
RPC는 우리말로 설명하자면... 원격 절차 호출? 정도가 될까요?
아무튼 원격지에 특정 일을 지시하는 방법 내지는 계층으로
보아도 좋겠습니다. 자세히 기억나지는 않는데 OSI 7계층에서는
5번째 계층에 해당하며, 지금 이 글을 보시는 분들은 이미 사용하셨을
HTTP 프로토콜도 일종의 RPC라고 할 수 있습니다.
(출처: 위키피디아, 역시 위키피디아의 설명이 정확합니다.)
여러분의 브라우저는 시리니넷 웹서버 Apache 에게 HTTP 헤더를 전송합니다.
페이지를 GET 으로 요청하는 내용이겠죠? 그럼 Apache 는 일단 로그에
접근 기록(access.log)을 남기고, 요청에 적합한 응답을 브라우저에게 전해줍니다.
각종 이미지 파일경로들이나 문서 형식등을 전달해주고 HTML 문서를 반환하지요.
브라우저는 그 응답을 받고 페이지를 다시 재구성(렌더링)하여
여러분들에게 지금 모니터 화면으로 보여주고 있습니다.
이런 이기종간의 원격 명령 호출을 RPC라고 (축약어로) 부른답니다.
XML-RPC는 그런 이기종간의 명령 호출 형식을 XML 형식으로 하겠다는 겁니다.
XML은 일전에도 한 번 이 곳에서 이야기를 했던 적이 있지만
웹(Web)에 특화된, 그야말로 호환성을 중시한 언어입니다.
개인적으로는 호환성 만큼 성능을 고려하지 않은 언어로 생각하고 있습니다.
예, 좀 더 솔직히 말씀드리겠습니다.
XML-RPC는 XML형식으로 명령을 주고 응답을 받습니다.
전달하고자 하는 핵심적인 코드보다도, 그 것을
감싸거나 불필요하게 구조적으로 해석해야 할 데이터가
지나치게 많은 것이 사실입니다.
아래의 코드를 함께 볼까요?
<methodCall>MetaWeblog API 중 metaWeblog.getPost 명령을 호출할 때 쓰는 코드입니다.
<methodName>metaWeblog.getPost</methodName>
<params>
<param>
<value>
<string>1829</string>
</value>
</param>
<param>
<value>userid</value>
</param>
<param>
<value>
<string>password</string>
</value>
</param>
</params>
</methodCall>
<methodResponse>무려 위와 같은 어마어마하게 많은 코드를 받게 됩니다.
<params>
<param>
<value>
<struct>
<member>
<name>categories</name>
<value>
<array>
<data>
<value>글의 분류가 적혀집니다.</value>
</data>
</array>
</value>
</member>
<member>
<name>dateCreated</name>
<value>
<dateTime.iso8601>20050201T12:10:12</dateTime.iso8601>
</value>
</member>
<member>
<name>description</name>
<value>여기에 포스트 본문 내용이 들어갑니다.
글 내용이 많아질 경우 한정없이 늘어지긴 하겠지요.
</value>
</member>
<member>
<name>link</name>
<value>http://sirini.net/blog/1829</value>
</member>
<member>
<name>postid</name>
<value>
<string>1829</string>
</value>
</member>
<member>
<name>title</name>
<value>여기에 글제목이 출력됩니다.</value>
</member>
<member>
<name>publish</name>
<value>
<boolean>1</boolean>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Hello, good site walgreen pharmacy online
pfizer viagra coupons from pfizer <a href=\" https://viagrawit
when to take viagra for maximum effect <a href=\" https://viagra
testosterone online pharmacy <a href=\" http://canadapharmxpd.
canadian pharmacy cialis <a href=\" http://canadapharmxpd.com \&
humana pharmacy otc order online <a href=\" http://canadapharm
a look at this website to resolve all my problems: - http://www.eos-d-sl
walmart pharmacy hours today <a href=\" http://canadapharmxpd.
cvs pharmacy photo <a href=\" http://canadapharmxpd.com \"&
absolute pharmacy <a href=\" http://canadapharmxpd.com# \"