아무튼, 오늘도 배운다.

또다른 Ajax 이야기 본문

오늘의 일상(Diary)/일상다반사

또다른 Ajax 이야기

아무튼씨 2007. 1. 25. 01:05
반응형
XForm 과 Ajax

요새 Web 2.0에서 빼놓고 얘기할 수 없는 것이 바로 AJAX이다. 머 사실 그다지 복잡한 기능도 아니고 또 전혀 새로운 기능도 아니다. (만들어진지 5년도 넘었다...) 하지만 구글이 이를 Google Suggest에 활용하면서 이른바 Rich Internet Application을 위한 기능으로 엄청난 스포트라이트를 받았다.

하지만 AJAX는 사실 W3C에서 원하는 형태의 기능이라고 볼 수는 없다. W3C는 기존에 웹 페이지들이 과도하게 스크립트를 사용하고 있는 것을 문제라고 생각하고 있다. 그런 문제로 CSS를 개발했고 XHTML 2.0에 Navigation List를 추가했다. 하지만 안그래도 남용되는 스크립트에 네트워크 기능까지 스크립트를 이용해서 접근하게 했다. 스크립트를 이용할 경우 나쁜 점은 역시 개발하기가 힘들고 개발툴이 만들어지기 힘들고 버그가 생기기 쉽다는 점이다.

그렇다면 W3C는 어떤 대안을 가지고 있는가? 바로 XForm (http://www.w3.org/MarkUp/Forms/) 이다. XForm은 기존 HTTP와 HTML Form을 확장시켜 XML을 이용해 데이터를 주고 받는 마크업 언어이다. 아직은 브라우저에서 직접 지원되지는 않아서 널리 쓰이진 않지만 formsPlayer(http://www.formsplayer.com/) 같은 플러그인(ActiveX)를 통해 사용할 수 있다. (파이어폭스는 현재 Preview Release를 배포한다. 어서 완성 되기를...)

XForm 을 사용해서 좋은 점은 역시 인자들을 Escape해서 HTTP Request 만드는거나 네트워크 에러처리를 하는 것 또 데이터를 받아와서 이를 스키립트로 화면에 표시하는 것과 같은 것을 프로그래밍 안해도 된다는 것이다. HTTP로 요청을 보내는 것은 아래와 같이 인스턴스 값을 마크업 언어를 이용해서 지정해 주면 된다. (아마존에 xform 책을 찾아주는 XForm 예제에서 가져왔다.)

<xf:instance id="iQuery">
    <instanceData xmlns="">
        <t>webservices-20</t>
        <dev-t>D1723OX2631XW0</dev-t>
        <KeywordSearch>xforms</KeywordSearch>
        <mode>books</mode>
        <type>lite</type>
        <page>1</page>
        <f>xml</f>
    </instanceData>
</xf:instance>

그리고 데이터 표시는 아래와 같이 태그를 이용해 xpath문법으로 노드를 정하면 화면에 표시된다.

<xf:output class="bookcover" value="concat('<img src="', ImageUrlSmall, '" />')" >

그러면 자동으로 ImageUrlSmall이라는 태그가 가진 값을 가지고 <img src="abc.gif"/> 라는 태그를 만들어서 표시해준다.

하 지만 역시 가장 나쁜 점은 XForm이라는 새로운 언어를 배워야 한다는 점이다. 자바스크립트를 대체하여 더 간단히 할 수 있도록 만들어 졌지만 이미 익숙한 자바스크립트에 새로운 함수를 이용하는 것과 새로운 XForm을 익혀서 사용하는 것, 어느게 쉽냐고 하면 간단한 요청의 경우에는 AJAX의 손을 들어주게 한다.

하지만 앞으로 다양한 기능이 웹서비스로 제공되기 시작하면 복잡한 XML 문서를 만들어서 요청하고 또 복잡한 XML 문서를 받아서 처리해야하는 경우가 많아 질 것이다. 이럴 경우에는 직접 스크립트로 XML 문서들을 다뤄야하는 AJAX 보다는 XForm의 장점이 드러나게 될 것이다.

출처; 모바일과 미래의 인터넷 by달삼
이글의 주소 ; http://beyondweb.egloos.com/785926
반응형

'오늘의 일상(Diary) > 일상다반사' 카테고리의 다른 글

블루슈머..?  (0) 2007.01.26
신권..  (0) 2007.01.25
ajax 에관한  (0) 2007.01.24
google에 대한 블로그  (2) 2007.01.24
나.....!!!  (0) 2007.01.22