Adobe Flex/AIR 에 대해
Adobe의 Flex를 다루기에 앞서서 RIA라는 용어에 대해서 알아보자.
RIA ( Rich Internet Application)
RIA는 차세대 웹 기술을 설명하는 일종의 페러다임이라고 생각하면 된다.
HTML의 정적인 UI와 확장의 한계성, ActiveX의 단일플렛폼(IE:MS인터넷익스풀로러)의 한계를 넘어선 기술이라 할 수 있다.
RIA기술은 웹의 장점인 웹서비스 이용 및 레거시시스템연동과 ActiveX와 같은 클라이언트/서버의 장점인 대용량데이터처리, 오프라인작업, 실시간모니터링,네트워크사용량축소을 모두 이룰 수 있다.
현재 이러한 RIA 기술을 적극적으로 받아들이고 활용하고 있는 개발기술로는
Adobe사의 Flex와 MS사의 Sliverlight가 대표격이다.
유사한 용어로 X-인터넷이 있는데....
X-인터넷은 RIA와 클라이언트에서 실행된다는 점에서 비슷하다.
가령, 플래시등을 이용하여 일반 프로그램과 같이 상세하고 동적인 결과의 화면을 제공하도록 하여 웹에서 포토샵이나 워드를 접하는 효과를 가지게 하는 것이 X-인터넷이라 할 수 있다.
하지만 RIA는 X-인터넷 이상의 기술을 포괄하는데, 가령 오디오, 고화질 비디오, 에니메이션등의 멀티미디어 처리도 언급한다.
그래서 RIA와 X-인터넷은 다음과 같은 관계를 가진다.
RIA = X-인터넷 + 멀티미디어
Adobe Flex란?
RIA 개념을 바탕으로하는 Flex에 대해서 말해보자.
Flex는 Flash의 자식이라고도 할 수 있다. 그러면서 동등한 관계이다.
Flex와 Flash가 같은 점은 결과물은 SWF파일이며 Flash Player에서 동작한다는 점이다.
다른점은 Flex는 개발자를 위한 것이며 Flash는 디자이너를 위한 것이다.(완벽히 단정지을 수 없지만 편의성만 놓고 볼때 그렇다.)
Flex와 Flash ActionScript 언어를 사용할 수 있는데... Flash는 ActionScript 3.0, 2.0 을 모두 사용할 수 있는 반면, Flex는 ActionScript 3.0 기반이다. ActionScript 3.0은 Java언어와 제한적으로 유사한 문법구조를 가져서 Java개발자가 다가가기에 용이하다.
Flash의 기본은 무비클립(MovieClip)이다. 무비클립은 타임라인이 포함되어 있고 Flash로 개발하는 컨텐츠는 이 무비클립을 기반으로 많이 만든다.
하지만 Flex는 무비클립의 타임라인을 제외한 Sprite를 기반으로 한다. Sprite는 키보드,마우스이벤트 처리등과 같은 기본적인 속성만 담고있어 무비클립보다 더 빠른 속도를 제공해줄 수 있다.
Flex에서 사용하는 모든 Visual 컴포넌트, 가령, Button, VBox,HBox,Canvas,Datagrid등은 모두 Sprite를 확장하여 만든 UIComponent를 상속받아 만든 것이다.
Flex의 Visual 컴포넌트은 다음과 같은 상속관계를 가진다.
Object->EventDispatcher->DisplayObject->InteractiveObject->DisplayObjectContainer->Sprite->UIComponent->Visual 컴포넌트
이러한 상속관계를 가지는 것은 Flex에서 사용하는 모든 객체는 Object를 기반으로 하고 그 기능에 따라서 필요한 클래스를 상속받은 것이라 생각하면 된다. 가령 Event관련 EventDispatcher, 화면표시 DisplayObject, 사용자와 상호 작용 InteractiveObject, DisplayObject를 자식으로 두기 위해 DisplayObjectContainer 식으로 확장한 것이다.
Flash와 다르게 Flex의 특이한 점은 MXML이라는 형태로 Visual Component를 배치할 수 있다는 것이다. MXML은 일종의 HTML과 같이 태그 형태로 웹페이지를 구성하듯 Flex의 화면을 그와 비슷한 방식으로 꾸밀 수 있다는 것이다.
이러한 기술은 Flex의 View적인 부분은 간단하게 MXML로 배치하고 각종 Business로직과 같은 부분은 ActionScript 3.0을 활용함으로써 개발에 편의성을 극대화 시켰다.
Flex로 무엇을 만들 수 있는가?
Flex는 브라우져 안에서 실행된다. 즉, 브라우져에 Flash Player 9.0 이상의 버전이 설치되어야 있어야 한다.
MS IE를 비롯해서 FireFox, Opera 등의 다양한 브라우져에서 Flex의 결과물이 Flash Player에서 돌아갈 수 있다.
(MS의 ActiveX는 MS IE에서 밖에 동작을 안한다.)
그렇기 때문에 Flash Player 환경에서 돌아갈 수 있는 모든 것은 다 만들 수 있다고 보면 된다.
구체적으로 살펴보자.
천문노트의 별자리판과 같은 것을 만들 수 있다.
http://astronote.org/Planisphere/
피크닉과 같은 이미지 에디터도 만들 수 있다.
스타플의 별지도와 같은 것도 만들 수 있다.
지도 프로그램 가능하다.
http://www.oobgolf.com/courses/finder/
한계가 있지만 3D 프로그램도 제작이 가능하다.
http://starpl.com/jidolstar/10023924
각종 메쉬업(Mesh-up)프로그램도 제작이 가능하다.
http://starpl.com/jidolstar/10023898
다이네믹한 쇼핑몰도 만들 수 있다.
http://www.sonyericsson.com/cws/product ··· Blc%3Den
동영상 플레이도 만들 수 있다.
이 외에도 엄청 많다~
AIR는 뭐지?
어도비 통합 런타임(Adobe Integrared Runtime)의 약어로
Flex가 웹을 넘어 데스크탑영역으로 프로그램 범위를 확장한 플렛폼이라 생각하면 됩니다.
대신 OS에 구애받지 않고 하나의 프로그램으로 여러 OS에 설치되어질 수있지요.
아직 한계는 많이 가지고 있는 편이지만, 앞으로 발전가능성은 정말 무궁무진하다고 할 수 있겠지요.
참고사이트
Flex 공식 사이트 : http://flex.org/
한국 Adobe Flex 공식사이트 : http://adobeflex.co.kr/
Flex Component 카페 : http://cafe.naver.com/flexcomponent
Flex 한글문서 : http://flexdocs.kr/
Flex 라이브 독(영문) : http://livedocs.adobe.com/flex/3/
Flex 개발센터 : http://www.adobe.com/devnet/flex/index.html
Adobe Open Source : http://opensource.adobe.com/
AS3 프로그래밍 : http://livedocs.adobe.com/flash/9.0_kr/ ··· 3_1.html
AS3 구조 참고서 :http://livedocs.adobe.com/flash/9.0_kr/ ··· refv3%2F
Google Flex Library : http://code.google.com/p/flexlib/
그외는 아래 링크를 참고하시면 도움 될겁니다.
http://mandki.tistory.com/tag/Flex%20Code
글쓴이 : 지돌스타(http://blog.jidolstar.com/347 )
트랙백 주소 :: http://blog.jidolstar.com/trackback/347
-
Subject: 마인드맵으로 작성한 Flex 관련 북마크
Tracked from 마인드맵 활용 가이드- 만득이 블로그 2008년 07월 04일 10시 01분 삭제Flex 북마크 Flex Online Compiler http://try.flex.org/ Flex Explorer Flex Chart Explorer http://demo.quietlyscheming.com/ChartSampler/app.html Flex Style Explorer http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html Flex Componen..



댓글을 달아 주세요
개념정리 글 정말 좋습니다. ㅎ
ㅎㅎㅎ
넹~ 감사합니다.
지적도 환영이예요~
개념을 다시 심어갑니다 ^^
ㅎㅎ
저도 스스로 개념좀 심어볼려고 썼습니다.
플랙스도 사실은 2프레임짜리 무비클립이 기본입니다.. 1 프레임에 Preloader가 있고, 2프레임에 실제 클래스들이 들어가게 됩니다. [Frame] 메타테그가 그 부분을 처리하는것이죠..^^ 그래서 플랙스도 사실은 Sprite 기반이 아닌 무비클립 기반하에서 만들어진 것입니다. 그리고 플랙스의 경우에는 모든 비주얼 컴포넌트들이 Drag&Drop을 통한 MXML 코딩을 위해 UIComponent를 상속받기 때문에 상당히 무겁습니다. 그래서 MXML로 개발한 작업물들이 AS3.0으로 개발된 작업물들보다 훨씬 무겁고 느린것이죠.. 사실 제대로 개발을 하려면 AS3.0으로 개발을 해야합니다...~
좋은 정보 감사합니다.
덕분에 공부했습니다. ^^
개념정리의 대가! ^^
아아.. 그래서 무거웠군요..
jasu님의 플래시 작업을 보면 상당히 가볍고 빠른 느낌인데
플렉스로는 뭐든 느린 느낌이 강했다는거..
그렇군요 >_<
돌돌님 덕분에 새로운걸 알았어요.
역시 열심히 글을 써야하는 이유를 또한번 느끼네요. ㅎ
앗, 그랬군요 -
그런데 문제가 되는 부분이 UIComponent를 상속받았기 때문인가요 아니면 MXML로 코딩했기 때문인가요? 내공이 부족해서 헛갈리네요 ㅡ_ㅜ
좋은 글 감사합니다 ~
플랙스의 비주얼 컴포넌트는 모두 UIComponent를 상속받습니다. UIComponent는 Sprite를 상속받아 만든거지요.
UIComponent가 Sprite보다 무거운 편이라는 거라는 거구요.
MXML로 만들었기 때문에 느려지는 것은 아닙니다.