'Rich Internet Application'에 해당되는 글 1건

  1. 2007/06/26 Rich Internet Application 간단 요약

9/19: 이 방면은 잘 모르지만, 간단한 설명을 부탁하신 분이 있어서 작성합니다.
9/24: 관련 통계가 올라와서 첨부합니다.
12/9: An Open Source AJAX Comparison Matrix에서 비교표 발췌
12/16: Exploring Ajax Runtime Offerings에서 비교표 발췌
12/22: Introduction to RIA 발표 자료 보기(PDF)(likejazz님 작성)
2007.3.28: 윤석찬님의 분류 추가
2007.4.19: ZDNet 김국현님 컬럼 링크
2007.6.26: 정기자님 포스트 링크
2008.4.12: 우연히 발견한 링크 추가
2008.7. 4: RIA 사용처 설문 내용 추가
2008.9.18: Rich Internet Application Archetype 링크 추가

RIA(Rich Internet Application)는 아주 간단하게 정의하자면 데스크탑 애플리케이션과 같은 기능을 수행하는 웹 애플리케이션을 의미합니다.

RIAApp.gif
출처:
Rich Internet Application Archetype

먼저 사용처를 살펴보고 기술 자체에 대해 알아보죠.

RIA의 적절한 쓰임새

RIA 전문가가 아닌지라 잘 모릅니다. 다만 RE: What's a good RIA to develop in 20 hours? 라는 글에 나온 설문 내용을 참고할 만하네요.

  1. Lightweight CMS
  2. MP3 Player
  3. Resume Editor/Publisher
  4. Meal/Calorie Tracker
  5. Contact Management
  6. Planning Application
  7. Timesheet Application
  8. DB/SQL Client
  9. Status Updater/Aggregator (LinkedIn, Twitter and Facebook)
  10. Online File Explorer (browser-based FTP interface)


RIA 기술 분류

RIA를 위한 서버측 프로그래밍 모델 같은 것이 아직 정립된 것 같지는 않습니다. 어떤 면에서는 서블릿의 Asynchronous 모델 채용이나 Continuation 과 같은 화두들이 RIA와도 관계가 있다고 보입니다. 일단 이들은 배제하고 사용자 인터페이스 입장에서 플랫폼 역할을 하는 기술들만 정리해보겠습니다.

최근에 부각되고 있는 실버라이트와 FX 스크립트를 소개하는 글을 링크합니다:
차세대 웹 개발 플랫폼 삼국지

윤석찬님의 간결한 분류를 먼저 소개하겠습니다.
- Ajax : (X)HTML+CSS+ DOM+ JavaScript <-> Data API
- WPF/e : XAML+CSS+XBL+CLR(JavaScript/Ruby/Python) <-> Data API
- Flex: MXML+CSS+ActionScript  <-> Data API
- Widget: HTML(Canvas)+ CSS+ JavaScript <-> Data API
- Firefox: XUL+CSS+JavaScript(XPCOM) <-> Data API
- WHATWG: HTML5 + CSS+ DOM+ JavaScript <-> Data API
출처: Ajax가 리치 웹의 끝인가?


위키피디아에서는 10가지로 세분하고 있지만, 개인적인 평가를 기준으로 두드러진 것들만 추려보면 다음과 같습니다.

  • AJAX (Javascript + DOM)
  • FLEX
  • ActiveX 컨트롤

이들 중에서 개발자 커뮤니티에서 국내외를 불문하고 가장 파장이 큰 것은 ajax입니다. 국내 서점에 출시된 서적들의 숫자로 국내의 인기를 추정할 수 있습니다. 해외의 경우는 작년 최대의 화두로 꼽히고 있구요. 수많은 라이브러리가 존재하는 것을 통해 영향력을 알 수 있습니다.

AJAXAsynchronous JavaScript and XML의 약자이지만, 굳이 Javascript와 DOM이라고 표현한 이유는 꼭 XML만 쓰일 수 있는 것은 아니기 때문이죠. AJAX에서 javacript는 브라우저(클라이언트)에 기능을 추가해줍니다. 다양한 동적인 움직임을 가능하게 해주죠. 웹에서 드래그 앤 드롭을 구현한다거나 부드럽게 오르 내리는 UI 컴포넌트의 움직임들이 단적인 예라고 할 수 있습니다. 물론, 이들은 행위가 강화된다는 것을 알려주는 두드러진 특징일뿐, 사용자 이벤트에 대한 반응이 강력해진다는 것이 더 중요합니다.

자바 스크립트가 제공하는 풍부해진 기능에 내용을 채우는 것이 DOM(Document Object Model)입니다. 서버에서 받은 데이터는 DOM을 통해서 화면의 적절한 위치에 나타날 수 있습니다. 물론, 자바스크립트와 CSS의 도움을 받게 되죠. 데이터를 실어 나르는 용기 혹은 차량 역할을 하는 것이 대개 XML인데요. 굳이 XML이 아니라 일반 테스트나 JSON 혹은 HTML 등으로도 전송이 가능합니다.

Ajax 구현을 돕는 수많은 라이브러리 혹은 프레임워크가 있는데 간단하게 주요 목록만 뽑아보죠.

  • Prototype: 수많은 Ajax 라이브러리/프레임워크의 기반을 제공하는 기초적인 자바스크립트 라이브러리
  • Dojo Toolkit: 자바 스크립트 기반의 풍부한 컴포넌트를 제공하는 Ajax 라이브러리
  • Google Web Toolkit: 구글에서 제공하는 자바 기반의 Ajax 개발도구.
  • DWR: 자바 커뮤니티에서 오픈소스로 진행되는 Ajax 라이브러리. 자바 서블릿 프로그래밍과 Ajax를 연결해준다.
  • Microsoft Atlas: ASP.NET의 확장으로 제공되는 MS의 Ajax 프레임워크
  • Yahoo! User Interface Library: Yahoo가 제공하는 자바스크립트 기반 UI 컨트롤과 유틸리티 라이브러리
Ajaxian.com 2006 Survey Results에 관련 통계 정보가 올라와 이를 첨부합니다.

Framework Survey Results

Platform Survey Results

  • 25% of you eschew frameworks and work with XMLHttpRequest directly (wow!)
  • 11% of you are using JSON to transfer data; unfortunately, we didn’t ask enough questions to determine how this compares with XML or other data formats
  • 3% of you are still using Microsoft’s “classic” ASP framework; five of you (~0.6%) are using C++ (+2 points for increased performance, -100 for increased complexity?)
  • 2% of you are using Adobe’s Flex toolkit (hey, those banner ads are working out…)
  • One participant uses Delphi (how’s that working out for you?), and another is using LISP (can we hire you?).

An Open Source AJAX Comparison Matrix에서 5점 척도로 Ajax를 비교한 자료

사용자 삽입 이미지

서버 중심의 처리를 하느냐/클라이언트 중심의 처리를 하느냐에 따른 분류
Flex. 사실상 표준이라 할 수 있는 Flash 플랫폼에 기반한 RIA 구현을 위한 기술 세트.
Ajax가 대체로 무료로 제공되는 수많은 라이브러리/프레임워크와 함께 간단한 개발 도구 기반으로 개발자에게 도입되는 것과 달리 Flex는 Adobe의 강력한 IDE(통합 개발 환경) 즉, 상품 기반으로 보급된다. 사용처에 있어서도 Ajax가 포털이나 인터넷 서비스 업체쪽에서 주로 도입하는 반면에, Flex는 대규모 사이트에 적합하다.

ActiveX 컨트롤. ActiveX 컨트롤은 IE와 함께 널리 사용된다. 대부분의 전자 상거래를 위한 인증서도 ActiveX 기술을 사용하고 있고, 대다수 포털 사이트의 편집기도 ActiveX를 이용하여 구현되었다. 웹 하드와 같은 것을 사용해본 경험이 있다면 RIA의 사용자 경험을 상당수 맛본 것이라고 할 수 있다. 국내 SI 산업에서 최근 급속도로 확산되는 X-인터넷 도구들은 대부분 ActiveX 기반이다. Ajax나 Flex와 달리 ActiveX 컨트롤은 Internet Explorer(당연히 OS는 윈도우)에서만 구동한다는 제약을 갖고 있다.

국내에 유독 ActiveX 기술이 득세하는 이유에 대해서는 다음의 칼럼에서 잘 설명해준다:
ActiveX 문제의 진실


첨부:
사용자를 자바 개발자에 국한하여 산정한 통계인 듯 하다.


출처: Most Popular Java / Ajax Frameworks


기본 JEE 웹 애플리케이션을 RIA로 Miagration할 때 참조할 사항: Leverage J2EE with Enterprise Web 2.0 

Flex를 잘못 사용하는 대표적인 사례: Top 10 Mistakes when building Flex Applications



이올린에 북마크하기(0) 이올린에 추천하기(0)