JavaScript 라이브러리, ICEfaces, Adobe의 Flash, Microsoft Silverlight에 이어 이제 HTML5, 네트워크 지배력을 위한 글로벌 경쟁은 새로운 시대, 즉 리치 인터넷 애플리케이션(RIA, 중국어로 리치 인터넷 애플리케이션이라고도 함) 시대에 진입했습니다.
이 기사의 목적은 RIA가 무엇인지 정의하고, 웹이 RIA에 더 가까워지기 시작한 이유를 설명하고, 현재 존재하는 다양한 RIA 프레임워크를 탐색하고, 각 프레임워크의 장단점에 대한 개요를 제공하고, 무엇이 무엇인지 논의하는 것입니다. 이러한 새로운 기술은 미래의 생존 상태처럼 보일 것입니다.
RIA란 무엇입니까?
소위 RIA 또는 리치 네트워크 애플리케이션은 데스크톱 프로그램처럼 작동할 수 있는 네트워크 애플리케이션을 의미합니다. RIA가 등장하기 전에는 대부분의 웹 애플리케이션이 정적 페이지로 구축되었습니다.
Sumo Paint는 Photoshop과 같은 그래픽 편집 기능을 갖춘 Flash 기반 RIA입니다.
데스크톱 애플리케이션과 달리 웹페이지와의 상호작용에서는 완전히 새로운 페이지를 다시 로드해야 하는 경우가 많습니다. 반면에 데스크톱 애플리케이션은 모든 처리가 사용자 컴퓨터 자체에서 이루어지므로 사용자 상호 작용이 훨씬 더 뛰어나며 보다 원활한 사용자 경험을 제공합니다.
따라서 소프트웨어 개발자들은 "우리 제품이 데스크탑 애플리케이션이어야 하는가, 아니면 웹 애플리케이션이어야 하는가?"라고 자문하기 시작했습니다. ”
두 유형의 앱 모두 고유한 장단점이 있으므로 이는 항상 공정한 질문입니다.
데스크톱 응용 프로그램은 원활한 사용자 상호 작용을 제공하지만 소프트웨어가 판매되고 릴리스 및 업데이트 문제로 어려움을 겪습니다.
반면에 웹 애플리케이션은 소프트웨어 릴리스 및 업데이트와 관련된 문제 없이 온라인에서 쉽게 사용할 수 있지만 사용자 상호 작용 경험은 매우 낮습니다.
그렇다면 어떻게 두 세계의 장점을 최대한 활용할 수 있습니까?
RIA는 두 세계 모두에서 최고입니다. RIA는 인터넷을 통해 출시되며 사용자 상호 작용이 매우 풍부합니다. 웹 애플리케이션이 새로 고치지 않고 서버 요청을 보내는 방법인 Ajax의 출현으로 인해 RIA 운동에 동참할 새로운 기술이 등장했습니다.
이러한 기술을 기반으로 개발자가 JavaScript 라이브러리, ICEfaces, Adobe Flash 4(Flex 3의 이전 버전), Microsoft Silverlight 및 HTML5와 같은 풍부한 웹 애플리케이션을 구축하고 배포하는 데 도움이 되는 여러 프레임워크가 등장했습니다.
RIA 프레임워크를 하나씩 살펴보겠습니다.
웹 애플리케이션용 JavaScript 라이브러리
jQuery 및 MooTools와 같은 JavaScript 라이브러리는 원활하고 대화형의 풍부한 웹 애플리케이션을 배포하는 데 진정으로 도움을 줄 수 있는 최초의 기술 중 하나입니다. 클라이언트 측 스크립트를 활용하여 프런트 엔드 인터페이스 기능을 처리하는 RIA 프레임워크를 제공합니다. 이는 브라우저 간 테스트를 거친 몇 가지 유용한 기능과 통합된 기본 Javascript 파일입니다. Ajax를 사용할 수 있을 뿐만 아니라 콘텐츠 표시 및 숨기기와 같은 일반적인 사용자 중심 이벤트 기반 상호 작용을 처리할 수도 있습니다.
현재 가장 널리 사용되는 것은 jQuery(특히 jQuery UI 사용), MooTools, YIU(Yahoo User Interface Library) 및 EXTJS입니다. 이러한 라이브러리에는 그리드, 차트, 복잡한 양식 요소 등의 RIA 구성 요소와 Ajax 처리 도구가 포함되어 있습니다. 가장 흥미로운 점은 웹 개발을 위한 대부분의 JavaScript 라이브러리가 오픈 소스라는 것입니다.
통합 개발 환경(IDE)을 구입하고 싶지 않지만 웹 사이트에서 멋지고 전문적인 RIA 기능을 원한다면 JavaScript 라이브러리가 탁월한 선택입니다.
JavaScript 라이브러리를 사용하는 웹사이트로는 Google, Digg, Yahoo, Amazon, Microsoft, Twitter 및 Best Buy가 있습니다.
아이스페이스
ICEfaces는 방정식에서 JavaScript를 제거하여 프로그래머의 작업 흐름을 단순화하도록 설계된 표준 JSF(JavaServer Faces) 프레임워크의 확장입니다. 즉, ICEfaces는 Java 애플리케이션 인터페이스를 통해 모든 JavaScript/Ajax를 처리합니다. 이러한 사용자 정의 JavaScript 기능의 복잡한 도입을 제거함으로써 풍부한 웹 애플리케이션을 작성하는 작업이 크게 단순화되었습니다.
팀의 대다수가 Java 개발자이거나 웹 애플리케이션에 다른 ICEfaces에 없는 복잡한 구성 요소가 필요하지 않거나 웹 애플리케이션이 이벤트 기반인 경우 ICEfaces를 사용하는 것이 좋은 선택입니다. 웹 애플리케이션이 이벤트 기반인 경우 ICEfaces는 HTML5, Flash Builder 4 및 Silverlight에서 지원하는 진정한 "서버 푸시" 기술을 제공하지 않는다는 점을 이해해야 합니다. 그러나 이에 따라 ICEfaces는 긴 폴링 방법을 사용하여 서버 푸시 기술을 시뮬레이션합니다.
ICEfaces를 사용하는 사이트로는 Boeing, NASA, Union Pacific, T-Mobile 및 Bank of America가 있습니다.
어도비 플래시 빌더 4
Flash는 오랫동안 사용되어 왔지만 RIA 웹 구성 요소를 제공하는 Flash의 확장 기능인 Flex가 출시되기 전까지는 Flash를 사용하여 전체 웹 애플리케이션을 구축하는 것은 번거로운 작업이었습니다.
Adobe Flash Builder 4의 가장 흥미로운 점은 크로스 플랫폼 및 크로스 브라우저 기능으로, 프로그램이 모든 운영 체제와 브라우저에서 동일한 방식으로 실행될 수 있다는 것입니다. 브라우저에 코드를 관리하고 처리하는 다양한 JavaScript 엔진이 있는 JavaScript와 비교할 때 Adobe Flash에는 사용자가 Adobe Flash 브라우저 플러그인(일반적으로 사용하는 것)을 통해 설치하는 엔진이 하나만 있습니다.
Flash Builder 4 응용 프로그램은 HTML 페이지에 포함되어 있기 때문에 이를 수행할 수 있습니다. 즉, 브라우저 자체는 응용 프로그램 성능에 영향을 주지 않습니다. 이는 원하는 경우 IE6에서 가장 복잡한 웹 애플리케이션도 실행할 수 있음을 의미합니다. (Flash 플러그인/엔진은 자주 업데이트되므로 사용자 플러그인 버전에 따라 약간만 달라지므로 이는 물론 간단합니다.)
이러한 애플리케이션에는 일반적으로 Java 백엔드 처리와 같은 서버측 처리가 수반되며 개발을 위해서는 Flash Builder 4 IDE가 필요합니다.
팀이 주로 Java로 개발하거나(Java와 잘 작동하기 때문에) 애플리케이션이 이벤트 중심 아키텍처를 사용하는 경우 Adobe Flash Builder 4를 선택할 수 있습니다.
Flash를 웹 애플리케이션으로 사용하는 웹사이트로는 Mint.com, Flickr, Hyundai 등이 있습니다.
실버라이트
Silverlight는 기본적으로 Microsoft의 Adobe Flex/Adobe Flash 버전입니다. 어느 정도 관심을 끌었지만 Adobe Flash의 인기 수준에는 도달하지 못한 것 같습니다.
Silverlight 응용 프로그램은 Microsoft 제품이기 때문에 분명히 .NET 백엔드에 연결되어 있습니다. 이는 Silverlight/.NET과 Adobe Flex/[PHP와 같은 일부 서버 측 스크립팅] 간의 통합에 대해 생각해야 함을 의미합니다.
웹 애플리케이션에 복잡한 그래픽이 필요한 경우, 팀이 주로 .NET 개발자인 경우, 애플리케이션이 이벤트 기반 아키텍처를 사용하는 경우 Silverlight를 선택할 수 있습니다.
Netflix와 같이 Silverlight를 사용하는 웹사이트.
HTML5
HTML5는 RIA 운동의 최신 개발입니다. HTML5는 본질적으로 API 모델을 단일 사양으로 활용하는 HTML4, JavaScript, CSS, Javascript 코드 라이브러리 및 Falsh를 통합한 동급 최고의 제품입니다. HTML5는 개방형 기술입니다. 즉, Adobe용 Flash나 Microsoft용 Silverlight와 같은 단일 관리 기관이 존재하지 않는다는 의미입니다.
HTML5 사양이 아직 완성되지 않았고 IE9도 아직 출시되지 않았기 때문에 프로덕션 수준의 웹 애플리케이션을 구축하려면 아직 조금 더 기다려야 합니다.
현재 IE8을 제외한 모든 주요 브라우저는 HTML5를 지원합니다. IE8은 브라우저 시장의 큰 부분을 차지하고 있기 때문에 IE9가 출시되기 전에는 HTML5가 주류가 되기는 정말 어렵습니다.
HTML5가 널리 지원되면 IDE(Flex 및 Silverlight와 같은 프레임워크에 필요함)를 구입하여 배우고 싶지 않은 경우, 애플리케이션이 이벤트 기반 아키텍처를 사용하는 경우 또는 내장된 HTML 기능 및 JavaScript를 사용하려는 경우 대신 API 기능 타사 JavaScript 라이브러리를 사용한 다음 HTML을 사용하는 것이 좋은 선택입니다.
그래픽은 HTML5에서 잘 처리되지만 Flash와 Silverlight를 사용하여 복잡한 그래픽과 애니메이션을 처리하는 것이 현재로서는 여전히 더 쉽고 빠른 옵션입니다.
HTML5 앱은 인터넷의 미래일까요? 정확히는 아닙니다. 창의적이고 혁신적인 웹 개발자가 계속해서 특별한 것을 창조하는 한, HTML5나 다른 웹 기술이 할 수 없는 놀라운 일을 할 수 있는 새로운 기술이 항상 등장할 것입니다.
JavaScript 라이브러리, ICEfaces, Flash, Silverlight 및 HTML5는 무엇보다도 창의성과 혁신을 위해 존재합니다. 미래의 네트워크는 지금과 마찬가지로 다양한 기술이 공존하는 형태로 구성될 것입니다.