'AJAX' 과연 웹 2.0의 중심 기술인가? - (2)

'AJAX' 과연 웹 2.0의 중심 기술인가? - (1)에 연결되는 글입니다.

AJAX를 구현하려면

AJAX를 구현하려면 어떻게 해야 할까? 앞서 살펴본 것처럼 AJAX는 이전까지 있었던 기술들의 조합에 불과하다. 그렇기 때문에 처음부터 하나씩 자신들만의 개발 방법을 만들어서 사용할 수도 있다. 하지만 생산성 향상을 위해서 우리는 많은 업체들이 제공하는 개발 툴킷 및 프레임워크를 골라서 사용하면 된다. 대표적인 AJAX 프레임워크는 다음과 같다.  

       서버 환경에 독립적인 프레임워크
         Prototype: Prototype 자바스크립트 프레임워크는 AJAX 프레임워크와 유틸리티를 제공한다. 독립된 라이브러리로 사용가능하며, 다른 프레임워크(Ruby on Rails, Rico, Script.aculo.us)들에서 사용하고 있다.
         Dojo Toolkit: 오픈소스 자바스크립트 툴킷으로, 자바스크립트 기반 응용 프로그램의 빠른 개발을 위한 기능들을 제공한다.
         Qooxdoo: 오픈소스 AJAX 프레임워크로 향상된 GUI 툴킷의 지원이 인상적이다.
         Clean AJAX: 간단한 오픈소스 AJAX 엔진을 제공한다.
       .NET
         Atlas: Microsoft가 제공하는 AJAX 프레임워크로 .NET 환경에서 쉽게 사용할 수 있다. 향후 Microsoft AJAX Library, ASP.NET 2.0 AJAX Extension, ASP.NET AJAX Control Toolkit의 형태로 공급될 예정이다.
         Ajax.NET: JSON 포맷을 이용하여 데이터 교환을 수행하는 가벼운 엔진이다.
        Anthem.NET: .NET 1.1과 2.0 환경에서 모두 동작하며, 어떠한 클라이언트 자바스크립트 작성 없이 AJAX 환경을 구현할 수 있는 장점이 있다.
       PHP
         Sajax: Sajax(Simple Ajax Toolkit)은 오픈소스의 AJAX 프레임워크로, PHP, Perl, Python에서 모두 사용할 수 있다.
         Xajax: AJAX 구현을 위한 오픈소스 PHP 라이브러리로 서버사이드에서 XML 포맷을 사용하여 구현한다.
       Java
        DWR: DWR(Direct Web Remoting)은 AJAX 기술을 구현할 수 있는 자바 오픈소스 라이브러리로 웹 서버상의 자바 함수를 웹 브라우저에서 사용할 수 있도록 지원한다.
        Google Web Toolkit: 자바에서 사용할 수 있는 구글의 무료 툴킷이다. GWT는 어떠한 IDE 환경에서도 빠른 개발을 지원 및 디버깅을 지원한다.
         ThinWire: 자바기반의 오픈소스로, AJAX 기술을 이용하여 전통적인 GUI 프로그램을 개발을 지원하는 RIA 개발을 위한 프레임워크이다.

이외에도 무수히 많은 프레임워크와 라이브러리들이 존재한다. IBM, Sun, Microsoft, Adobe와 같은 많은 대기업들도 AJAX 개발을 지원하는 모습에서 우리는 새롭게 다가올 IDE 환경의 변화를 예측할 수 있다. 얼마나 쉽게 AJAX와 같은 개발을 지원할 수 있느냐가 바로 웹 2.0 기반의 개발 환경을 주도하는 가장 중요한 요소이기 때문인 것이다.


AJAX가 만병통치약은 아니다
현재 AJAX가 웹 2.0 시대의 기술 중심에 있는 것은 누구도 부정하지 못하는 현실이다. 그러나 “과연 AJAX가 지금까지의 문제들을 해결해주는 만병통치약일까?”. 결론부터 이야기하면 “그렇지 못하다” 이다.

AJAX로 구현된 웹 페이지를 보면 부드러운 움직임과 페이지의 전환 없이 데이터가 교체되는 것을 확인할 수 있다. 그러나 이런 특징은 지금까지 웹 환경에 익숙한 사용자들에게 혼란을 줄 수 있는 요소가 된다. 페이지에 다양한 정보들이 출력하는 경우 그 중 일부분만 교체된다고 생각해보자. 어떤 부분의 정보가 교체되었는지 확인하지 못하는 경우가 발생할 수 있다. 또한 페이지 처리가 진행되는 경우 전통적인 모레시계 마우스커서 출력 또는 브라우저의 페이지 읽어오는 상태바의 구현이 AJAX를 이용하는 웹 사이트에서는 적용되지 않는다. 즉 사용자들은 자기가 입력한 정보들이 처리되고 있는지 혼란을 받을 수 밖에 없다. 이런 점들을 보완하기 위해 메시지 창을 내부에 출력하는 방식을 사용할 수 있으나 그 사용에 제약을 받을 수 있는 가능성은 충분히 존재한다.

또한 웹 페이지를 이용하는 많은 사용자들이 브라우저의 ‘뒤로 가기’ 버튼에 익숙해져 있다. AJAX 기반의 웹 페이지에서는 이것을 구현하고자 한다면 상태 값들을 저장해야만 하는데 이 또한 쉽게 구현할 수 없는 부분이다. 페이지에 대한 북마크를 수행할 때에도 이점은 문제로 발생한다. 최근 이런 문제들을 해결하기 위한 방법들이 소개되지만 아직까지는 사용자들에게 혼란을 줄 수 있는 요소임은 틀림없다.

비동기가 장점을 주지만 단점도 분명히 존재한다. 비동기라는 것은 한마디로 서버에 결과를 요청하지만 클라이언트의 발송순서대로 처리되지 않을 가능성을 가지는 모델이다. 기존의 웹 처리방식은 동기식 처리이기 때문에 먼저 입력한 결과의 처리를 완료한 후 다음 입력을 처리한다. 하지만 AJAX의 비동기에서는 이런 점을 보장할 수 없기 때문에 쇼핑몰과 같은 구현에 있어서는 주의를 해야만 한다. 시간의 입력 순서대로 구매가 진행되는 경매와 같은 부분에서는 오류를 발생시킬 수 있는 가능성이 있는 것이다.

또한 XMLHttpRequest를 이용하여 비동기를 구현하기 때문에 상황에 따라 이를 이용할 수 없는 브라우저가 있다는 것도 미리 확인해야 하는 사항이다. 오래된 브라우저, 장애인용 브라우저, 다른 디바이스의 브라우저에서 지원을 하지 못하는 경우가 있다. 이런 경우에는 폼 기반의 웹 페이지로 전환하는 부분이 같이 고려되어야만 원활한 서비스가 가능하다.

마지막으로 데이터 교환에 있어서의 보안 문제이다. 근본적으로 AJAX는 서버와의 데이터 교환에 XML 데이터와 자바스크립트를 이용하여 구현하고 있다. 개발자의 의도와는 다르게 이런 데이터들은 쉽게 노출될 수 있기 때문에 보안에 항상 주의를 기울어야만 한다.

이처럼 AJAX가 우리에게 주는 많은 장점에도 불구하고 여전히 문제점들은 가지고 있다. 하지만 어떤 기술이든 장단점을 모두 가지고 있기 때문에 우리는 이를 미리 파악하여 자신에게 맞는 환경으로 구현 하면 된다. 아직까지 AJAX를 이용한 개발은 기존 방식에 비해 많은 개발시간이 필요한 것이 현실이다. 생산성의 향상과 개발을 위한 가이드라인은 지금도 많은 곳에서 소개되고 있기 때문에 앞으로 그 여건은 좋아지리라 확신한다.

웹 2.0 시대 기술 중심에 있는 AJAX는 분명 우리에게 많은 의미를 전달한다. 그러나 AJAX는 다음 단계로 가기 위한 징검다리 역할만을 수행하는 기술임을 필자는 확신한다. 지금까지 구현하지 못하였던 부분을 사용자에게 새롭게 선보이기 위한 기술의 조합이라는 것이다. AJAX 방식의 구현이 없어진다는 이야기는 아니다. 다만 새로운 RIA 시대를 열어가는 초석이라는 것이다. 보다 화려하고, 보다 쉽고, 보다 빠른 응용 프로그램을 사용자들이 원하기 때문이다. 이런 환경에 최적화된 새로운 기술이 소개된다면 AJAX는 또다시 과거의 기술로 전락하게 될 것이다. 아니면 일반적인 기술이 되어 HTML, CGI와 같이 더 이상 사용자들의 주목을 끌지 못하는 일반적인 개발 방법이 될 수 있다. 과연 AJAX가 얼마나 더 오랜 시간 동안 주목을 받을 수 있을지 여러분들의 생각은 어떠한가? 1년일까? 2년일까? 

(작성자: 네오비스)

스마트플레이스의 글을 편리하게 구독하세요. 한RSS 추가 구글추가
크리에이티브 커먼즈 라이센스
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

트랙백 (0) | 덧글 (3)
트랙백 주소: http://www.smartplace.kr/trackback_post_8.aspx
스마트플레이스의 트랙백은 스팸방지를 위해 관리자 승인 후 등록됩니다.

kkongchi 2006-10-02 00:30:28     답글 삭제
닷넷 SI 개발자로서, 제 경험을 생각해서 말해본다면..
ASP.NET으로 웹개발하는 것도 충분히 노하우가 쌓이기 까지는 3년 이상이 걸렸던 것 같군요. AJAX의 경우 조금 더 걸리지 않을까요?

네오비스 2006-10-02 01:09:21     답글 삭제
To kkongchi님.
항상 기술은 변화하기 때문에 시기를 단정짓기 어렵습니다. 지금도 주변을 둘러보면 ASP만가지고 프로젝트를 진행하는 경우도 많이 있습니다. MS의 기술 로드맵을 본다면 내년에는 Windows Vista의 출시와 함께 .NET Framework 3.0의 이야기가 주된 화두로 등장할 것입니다. 올해의 Atlas, AJAX의 기술보다는 WPF와 같은 새로운 UI 환경이 또 많은 오피니언리더들에 의해서 전파가 되겠지요. 실무에 적용되기에는 다소 시간이 필요합니다. 이야기하신것처럼 3년도 더 걸릴 수 있는 일이죠. 하지만 우리의 주목을 끌기에는 기술의 변화가 너무 빠르다는 것은 잊어서는 안될 것 같습니다. 좋은 의견 감사합니다. :D
kkongchi 2006-10-02 02:03:11     삭제
그러게 말입니다..^^

기술적인 변화는 계속 빨라지고, 프로젝트에서는 그걸 안정적으로 소화못하고 있는 현상이 최근에 많아지고 있어서 드린 말이구요. 결국 그런 일들이 프로젝트의 성공/실패 혹은 웹사이트의 안정성 등에 너무 많은 영향을 끼치고 있는 것 같습니다. AJAX 이전에 XmlHttp를 많이 사용한 프로젝트를 한 적이 있었는데 평균보다 훨씬 긴 시간이 걸렸드랬죠...

이름 비밀번호
홈페이지
덧글
비밀글
RSS 피드
전체글한RSS 추가 구글추가
스마트가젯북스타일
Demo Day