2. 플렉스2가 좋은 10가지 이유
상태바
2. 플렉스2가 좋은 10가지 이유
  • 데이터넷 관리자
  • 승인 2006.11.22 00:00
  • 댓글 0
이 기사를 공유합니다

GUI트렌드 과거와 현재
Tech Guide

GUI트렌드 과거와 현재

플렉스2가 좋은 10가지 이유

운영체제·브라우저 독립성 보장 … 하나의 플랫폼으로 자리 잡아

김태완//

대우정보시스템 대리
okcode@gmail.com

지난 호 ‘GUI 트렌드 과거와 현재’에서는 초기 웹으로부터 웹2.0까지의 흐름을 살펴보고 그 중에서 웹2.0의 특징과 웹2.0 구현 기술 중 플렉스에 대해 알아봤다. 이번 호에는 RIA 솔루션 중에서 가장 각광받고 있는 플렉스의 아키텍처와 개발환경을 살펴보고자 한다. 플렉스는 2004년 3월에 처음 출시됐고 2006년 7월에 발표된 플렉스 2가 최신 버전이다. 아키텍처 분석을 ‘플렉스가 좋은 10가지 이유’라는 부제로 플렉스의 아키텍처와 개발환경 관점에서 10가지의 특징(장점)을 살펴보고자 한다. <편집자>

플렉스 특성을 알아보기 전에 플렉스 최신 버전의 제품군을 살펴보고자 한다. 플렉스 2는 플렉스 2 SDK, 플렉스 빌더 2, 플렉스 데이터 서비스 2, 플렉스 차팅 2로 구성돼 있다. 플렉스 2 SDK는 플렉스 프레임웍과 컴파일러 등으로 구성된 플렉스 개발의 기본 툴이다. 플렉스 빌더 2는 플렉스 개발툴이고, 플렉스 데이터 서비스 2는 플렉스 1.5까지 플렉스 프리젠테이션 서버라고 불리던 것에 메시지 서비스(JMS)를 추가해 서버와 클라이언트(플렉스 애플리케이션)가 데이터 통신을 지원하는 서버기술이다. 플렉스 차팅 2는 1.5버전까지 제공되는 플렉스 차트 컴포넌트의 확장버전이다.
플렉스 1.5버전 까지는 제품군 및 아키텍처에서 클라이언트와 서버의 구분이 불분명했다. 플렉스 2 제품군은 플렉스의 클라이언트와 서버를 명확히 구분한다. 플렉스 2 애플리케이션이 플렉스 데이터 서비스 2를 사용하는 것은 선택 사항이다. 따라서 플렉스 데이터 서비스 2의 기능을 사용하지 않을 경우 플렉스 2 SDK 만으로 플렉스 애플리케이션 개발이 가능하다.
이 때 플렉스 2 SDK의 컴파일러를 이용하거나 플렉스 빌더를 사용해 플렉스 애플리케이션을 PC에서 컴파일하여 플래시 파일로 만들고 이 SWF 플래시 파일을 서버에 배포해 사용할 수 있다. 따라서 플렉스2 SDK와 플렉스 차팅 2, 플렉스 빌더는 클라이언트에 속하는 제품군이다. 플렉스 1.5 버전까지는 플렉스를 사용하기 위해서는 플렉스 프리젠테이션 서버를 구입해야만 했다. 플렉스 2가 서버와 클라이언트를 완전하게 구분하기 때문에 플렉스 데이터 서비스를 사용하지 않을 경우 매우 저렴한 비용으로 플렉스 프레임웍을 사용할 수 있다.

플렉스 2가 좋은 10가지 이유
1. 플렉스는 플래시 기반 기술이다.

플래시 기술이 웹에서 애니메이션 처리를 적용시키기 위해 개발된 기술로 개발과정은 디자인 중심이다. 플렉스는 플래시를 기반으로 만들어 졌다. 플렉스 애플리케이션의 최종 산출물은 플래시 파일이다. 플렉스는 플래시 기술 위에 디자인 중심이 아닌 데이터 중심의 애플리케이션을 만들기 위해서 만들어진 기술이다. <표 1>은 플래시와 플렉스의 차이점을 요약한 것이다. 플래시는 플래시 플레이어에서 실행되는 애플리케이션이다. 플래시 플레이어는 크로스-OS와 크로스-브라우저를 보장한다. 플래시 플레이어는 현재 PDA, 셋톱박스, 핸드폰 등 컴퓨터를 넘어 다른 하드웨어 플랫폼에 포팅되어 사용되고 있다. 플렉스는 플래시를 기반으로 하기 때문에 플래시에서 가능했던 모든 애니메이션 효과를 적용시킬 수 있으며, 디자인적인 접근법이 아닌 데이터와 개발코드 중심의 접근법으로 개발돼 플래시 보다 유지보수나 개발 생산성이 뛰어나다.
플렉스의 최종 산출물은 플래시 플레이어에서 작동하는 플래시 애플리케이션이다. 현재 최신 버전인 플렉스 2는 플래시 플레이어 9에서 작동한다는 버전상의 제약조건이 있기는 하지만 기본적으로 플래시 플레이어가 설치된 곳에서는 플렉스가 작동한다. 운영체제와 브라우저가 다각화 되면서 모든 운영체제와 모든 브라우저에서 동일하게 표시되고 작동하는 웹 에플리케이션을 개발하는 것은 상당히 어려운 일이다. 플렉스는 플래시 플레이어를 실행환경으로 하기 때문에 크로스-OS와 크로스-브라우저와 애니메이션 효과를 기본적으로 보장하는 솔루션이다.

2. XML과 ECMA스크립트 준수하는 개발언어 체계
애플리케이션을 개발할 때 개발언어의 체계는 개발 생산성 및 유지보수에 많은 영향을 미친다. 플렉스 애플리케이션 개발에 사용되는 언어는 MXML과 액션스크립트다. MXML은 xml 파일이다. MXML파일은 CSS 스펙 레벨 1과 W3C DOM 레벨 3를 기반으로 스타일과 이벤트 모델을 구현하고 있다.
액션스크립트는 객체지향언어로 에크마스크립트(ECMAScript) 표준을 기반으로 만들어 졌다. 에크마스크립트는 자바스크립트의 표준스펙이다. MXML과 액션스크립트가 표준 스펙을 기반으로 만들어졌기 때문에 기존에 XML, HTML, 자바스크립트에 익숙한 웹 개발자는 MXML과 액션스크립트를 어려움 없이 익힐 수 있다는 장점을 갖고 있다.

3. 플렉스가 제공하는 다양한 데이터 연동 방법
플렉스는 서버와 통신을 하기 위해 HTTP, AMF, RTMP 프로토콜을 지원한다. HTTP 프로토콜은 HTTP 서비스 방식과 웹서비스 방식으로 구분된다. HTTP 프로토콜을 사용해 기존의 웹 애플리케이션이나 서버의 웹서비스를 사용할 수 있다. HTTP 방식은 두 가지 방식 모두 XML을 결과로 받아 처리한다. AMF는 HTTP 프로토콜을 위에 인코딩된 바이너리 데이터를 송수신 하는 방식이다. 리모트오브젝트(RemoteObject) 방식이 AMF 프로토콜을 사용한다. 리모트오브젝트방식은 서버에 존재하는 자바빈의 메소드를 플렉스에서 직접 호출할 수 있고 AMF가 지원하는 바이너리 데이터를 사용한다. 리모트오브젝트 방식은 HTTP 서비스 방식이나 웹서비스 방식에 비해 속도가 빠르다는 장점을 갖는다. 리모트오브젝트 방식을 사용하기 위해서는 플렉스 데이터 서비스 2를 사용해야 한다. RTMP(Real Time Message Protocol)는 TCP/IP 기반이 소켓통신을 한다. RTMP 프로토콜을 사용하는 데이터연동 방식은 메시지서비스와 데이터관리 서비스가 있다.
HTTP 프로토콜을 사용하는 것은 기본 플렉스 SDK 2만을 이용해 개발 가능하지만 AMF와 RTMP를 사용하는 것은 플렉스 데이터 서비스 2를 사용할 경우에만 사용 가능하다. 플렉스의 데이터 연동 방식을 정리하면 <표 2>와 같다.

4. 높은 확장성
확장성이 떨어지는 RIA 솔루션이 상당수 존재한다. 새로운 UI 컴포넌트가 필요하거나 기존의 컴포넌트의 일부 UI를 변경해야만 하는 경우에 개발자가 직접 컴포넌트를 확장할 수 없고 솔루션 벤더에게 UI 컴포넌트를 개발 및 수정을 의뢰해야 한다면 문제가 심각하다. 플렉스는 UI 컴포넌트의 액션스크립트 클래스를 제공하고 있고 이 소스도 오픈 된 상태이다. 액션스크립트 클래스를 상속하거나 오픈된 소스를 활용해 새로운 UI 컴포넌트를 개발자가 직접 구현할 수 있고 MXML 태그로 컴포넌트를 정의해 재사용 할 수도 있다.

5. MVC 아키텍처에서 ‘뷰’ 계층을 전담
웹 애플리케이션은 일반적으로 MVC 패턴으로 개발된다. MVC 패턴이란 애플리케이션을 데이터 영역(M, 모델), GUI 영역(V, 뷰)과 데이터 영역과 GUI 영역을 연결하고 제어하는 영역(C, 컨트롤)으로 분리하고 각 영역별로 역할과 책임을 구조화하여 개발하는 방법을 말한다. 플렉스는 ‘MVC’ 중에서 뷰(View)를 전담하는 RIA(Rich Internet Application) 솔루션이다. 기존에 존재하는 웹 애플리케이션을 플렉스로 전환할 때 서버에 존재하는 모델과 콘트롤 영역의 프로그램 변경을 최소화하면서 ‘뷰’ 부분을 플렉스로 전환이 가능하다.
플렉스는 서버와 통신하는 방식으로 http, 웹서비스, 리모트 오브젝트를 방식을 지원하기 때문에 기존의 웹 애플리케이션의 재사용성을 극대화할 수도 있고, 플렉스 리모트 오브젝트를 사용해 서버에 존재하는 자바 메소드를 플렉스 애플리케이션에서 직접 호출하도록 개발할 수 있다. 이와 같은 특성은 플렉스가 ‘뷰’ 영역에만 집중할 수 있는 기반 여건을 제공한다. 이것은 RIA 제품의 기본 기능이어야 한다. 하지만 많은 RIA 제품에서 이 당연한 기능이 결여되거나 부족한 경우가 많다. 때때로 RIA 제품을 사용하기 위해 시스템 아키텍처의 일부를 수정해야 하는 경우도 발생한다. RIA 제품을 도입하거나 검토할 때 ‘뷰’ 영역만을 대상으로 한다는 것은 매우 중요한 요소이고 플렉스는 이 항목에서 가장 높은 평가를 받고 있는 솔루션이다.

6. 다양한 컴포넌트 제공
플렉스 2는 플렉스 애플리케이션에서 사용되는 기본 컴포넌트들을 포함하고 있다. 플렉스가 제공하는 컴포넌트는 컨트롤 컴포넌트, 레이아웃 컨테이너 컴포넌트. 네비게이터 컨테이너 컴포넌트, 차트 컴포넌트로 구분할 수 있다. 기본 컴포넌트를 이용해 RIA 애플리케이션 개발이 가능하다. 또한 이들 컴포넌트들을 상속하거나 수정해 새로운 컴포넌트를 개발하는 것이 용이하며 이러한 작업을 통하여 개발 생산성을 높일 수 있다.

7. 플렉스는 오픈 프레임웍
플렉스 2 SDK는 무료로 제공된다. 플렉스 SDK 2는 플렉스 컴포넌트, 컴파일러, 디버깅을 위한 각종 유틸리티로 구성돼 있다. 플렉스 2 SDK만을 이용해 플렉스 애플리케이션을 개발할 경우 추가적인 솔루션 비용이 들지 않는다. 플렉스는 플렉스 프레임워크의 모든 API를 공개하고 있다. 플렉스 API의 소스를 참조해 새로운 컴포넌트 개발 등을 할 수 있다.

8. 플렉스는 오픈 플랫폼
어도비는 플렉스 프레임웍 소스와 데이터서비스 인터페이스를 공개하고 있다. 이것을 이용해 다양한 플렉스 오픈소스 프로젝트들이 진행되고 있다. ‘www.osflash.org’에서는 플렉스 데이터 서비스 2를 오픈소스로 구현하는 프로젝트가 활발하게 진행되고 있다.

9. 플렉스빌더 2는 이클립스 기반의 통합개발환경
플렉스 2 의 개발툴인 플렉스 빌더2는 이클립스를 기반으로 만들어 졌다. 이클립스는 자바 통합개발환경을 초월해 모든 개발툴의 플랫폼이 되겠다는 목표로 진행 중인 오픈소스 프로젝트다. 이클립스는 현재 전세계에서 가장 영향력이 큰 개발툴로 성장한 상태다. 플렉스 빌더가 이클립스 기반으로 개발됨으로써 기존 이클립스의 장점을 모두 흡수하게 됐고 안정적인 플랫폼을 기반으로 완성도가 높아졌다.
플렉스빌더2는 <그림 1>과 같이 다양한 뷰와 퍼스펙티브를 제공해 개발편의성을 높이고 있고 디자인, 코드편집, 디버깅 기능을 지원하고 위지윅 방식으로 화면을 다자인해 실행결과를 바로 볼 수 있는 기능을 포함해 개발 생산성이 높아지게 됐다. 자바, C/C++, php, 파이썬, 루비, 포트란 등 다양한 언어의 개발툴로 이용되고 있기 때문에 기존 이클립스 사용자가 플렉스빌더에 적응하는 학습곡선(Learning Curve)를 최소화 할 수 있다.

10. 플렉스 2의 속도 최적화
플렉스 2가 발표되기 전까지 플렉스는 플래시 플레이어 8.5 버전에서 실행되는 것으로 돼 있었다. 플렉스 2가 나오기 이전에 플렉스 1.5 버전까지는 플렉스는 화면을 그리는 부분에서 속도문제가 있었다. 기존 플래시 플레이어는 플래시 애플리케이션의 벡터 이미지 처리에 최적화돼 있었다. 따라서 플렉스의 객체처리 및 가비지 컬렉션과 같은 것을 처리하는 것에는 최적화해 있지 않았다. 플렉스 2가 발표되면서 플래시 플레이어는 새롭게 개발됐고 결국 최종에서는 완전히 새로운 제품으로 공개됐다. 그런 의미에서 플래시 플레이어는 8.5가 아닌 9 버전으로 명명됐다.
플래시 플레이어 9은 기존의 벡터 이미지를 처리하기 위한 액션스크립트2.0을 위한 AVM(ActionScript Virtual Machine) 가상머신과 타입체크, 객체처리, 가비지 컬렉션에 최적화된 액션스크립트3.0을 위한 AVM2 가상머신이 별도로 탑재돼 있다. AVM2는 매우 고속이며, 런타임 에러 리포트와 업계 표준방식의 디버그 기능을 제공한다. 액션스크립트3.0 자체의 개선과 플래시 플레이어 9의 플렉스 최적화로 기존 성능 이슈는 사라지게 됐다.

지금까지 10가지 플렉스가 좋은 이유를 살펴봤다. 거창하게 내부 실행 방식을 설명하는 방식으로 플렉스 아키텍처를 설명하기 보다는 주요 장점을 살펴보고 이 이유를 살펴보는 것이 더 쉽고 효과적인 방법이라고 생각한다. 플렉스의 장점은 10가지로는 부족하다. 애플리케이션을 다루는 사람의 적응과 애플리케이션 개발에 대한 문화적인 접근 방식의 변화 등 웹2.0 시대에 플렉스가 갖고 있는 장점을 정리하자면 끝이 없다.
플렉스의 장점 중에 가장 중요한 것은 표준 언어로 만들어지고, 확장성이 좋으며, 운영체제와 브라우저의 독립성을 플래시 플레이어가 보장해 주고 있다는 것이다. 또 플래시 플레이어는 단순한 멀티미디어 플레이어나 애니메이션 처리가 아닌 하나의 플랫폼으로 자리 잡고 있다는 것이다. 개발언어로서의 완성도와 RIA 솔루션으로서의 성능, 플랫폼으로서의 위치, 개발자 수준의 확장성 보장, 활발한 개발자 커뮤니티 등 다양한 요소를 감안해 보면 플렉스는 웹2.0의 가장 중요한 구현기술 중 하나인 것임에 틀림없다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.