'flex'에 해당되는 글 3건
- 2008/02/05 Flex 3, 플렉스 3 그리고 Air (Adobe Integrated Runtime)
- 2008/02/05 Flex? 플렉스?
- 2008/02/05 RIA(Rich Internet Application)
아직은 미개척 분야라지만 현재 RIA시장은 Flash와 Flex의 Adobe사가 강자라고 할 수 있다. 그런 Adobe에서 Flex 3와 AIR의 발표를 앞두고 있어 웹 개발자들의 뜨거운 관심을 받고 있다.
2006년 6월에 발표된 Adobe의 플렉스 2는 스스로 정체정을 찾지 못한 채 표류하며 개발자들에게 다가서지 못하는 듯 보였다. 하지만 지금은 Adobe의 지속적인 개발자 지원정책으로 매우 친숙해진 이름이 되어버렸다.
Adobe는 자바 개발자들에게 다가서기 위해 이클립스 기반의 플렉스 2 빌더는 성공적인 안착을 하였고 웹 개발 툴로 Jolt Award와 eweek Excellence Award등에 선정되기도 하였다. 그리고 각종 자바 세미나에 참여하여 플렉스에 대하여 이야기 하고 있으며 .NET과 PHP, Ruby등 다양한 개발자의 지원을 지속적으로 하였다.
지금의 플렉스는 각종 웹 관련 세미나에서는 빠지지 않는 주제가 되어 버렸다.
참가비가 360불이기 때문에 이름 붙여진 360 플렉스는행사는 플렉스 개발자들이 기다리는 행사였는데 이번에 2007년도 로드맵에 플렉스 3(코드명 Moxie)와 더불어 아폴로(Apollo)라는 흥미로운 프로젝트에 관심이 집중 되었다. 특히 데스크톱과 웹의 경계를 넘나드는 아폴로에 대한 소문은 이미 몇몇 데모를 통해서 점점 더 커지고 있었다.
2007년 3월에 아폴로 베타버전이 7월에 플렉스 3 베타버전이 공개 되었고 2008년 상반기 정식버전 릴리즈로 개발이되고 있다. 하지만 대부분 구현기능이라던가 핵심적인 가치에 대해서는 공개가 되어있다.
놀라운 것은 몇몇 기능을 제한한 Blaze DS를 오픈소스로 공개하였다. 이는 급변하는 요구사항에 대응하기 위해서라고 하는데 개발자들에게 대단히 환영받고 있는 부분이며 실제로 많은 개발자들이 참여하고 있다. 개발자들의 소통문제를 위해 Flex Bug and Issue Management System이라는 JIRA기반의 버그관리 시스템을 오픈하여 개발자들이 직접 참여하고 모든 과정을 공개하는 정책을 선택하였다.
Flex 3의 핵심 기능은 사실 아직 나오지를 않았기 때문에 다음에 논하기로 하겠다. 하지만 웃긴 것은 'Thermo'라는 프로젝트로 인해 Flex 3이 나오기도 전에 Flex 4에 대한 이야기가 심심치 않게 들려온 다는 것이다. 뭐.. 필자는 Flex 3도 벅차기에 Flex 4는 한참 후에나 글을 적을 것 같다.
여기서 잠시 AIR에 대해 논해보자.. 사실 앞서 말한 아폴로라는 프로젝트는 법적인 문제로 인해 이제는 AIR(Adobe Integrated Runtime)라는 이름으로 오는 3월 릴리즈를 준비하고 있다.
AIR는 쉽게 설명해서 PC내에 설치되는 응용프로그램을 만들어내고 실행 할 수 있는 SDK와 같은 실행환경을 의미한다. 당연히 멀티 OS를 지원하기 때문에 별도의 추가 작업 없이 배포할 수 있게 된다.
AIR는 기존의 웹 개발 기술을 안다면 데스크탑 응용프로그램을 만들 수 있다는 말이 된다. 이러한 특징은 웹 개발자들과 데스크톱 개발자의 영역이 서로 호환되는 부분이 생기는 효과를 가져오게 될 것이다.
Flex 2.0.1 버전에서도 AIR 개발을 위한 플렉스 빌더 확장이 제공되지만 플렉스 3는 기본적으로 AIR 개발 기능이 포함되어 개발자들은 기존의 개발한 내용을 가지고 웹 응용으로 만들 것인지 데스크톱 응용으로 만들 것인지 선택할 수 있다.
국내에서 AIR를 이용한 몇몇 응용 프로그램들이 선보여지고 있는데 많이 알려진 것이 통합메신져 Mobsword이다. (http://mobsword.com)
Adobe!! Open Source로의 첫발을 내딛다.
2007년 2월 어도비에서는 플렉스에 대한 오픈소스 정책을 발표하였고 그 시기는 마소(마이크로소프트)의 실버라이트 발표시기와 묘하게 맞물려서 어도비에서 내놓은 극약처방이라는 말도 많았다. 하지만 결과적으로 플렉스 3 개발 정책에 긍정적인 피드백으로 작용하고 있다.
어도비에서 진행하고 있는 오픈소스 정책 외에도 플렉스와 관련된 오픈소스 프로젝트 들은 이미 많이 진행 되고 있다. 잘 알려진것으로 RIA 개발 프레임 워크인 Cairngorm(http://www.adobe.com/go/cairngorm) 프로젝트와 어도비 기술 기반 오픈소스 프로젝트인 RIAForge(htto://www.riaforge.org)에 등록된 수십 개의 프로젝트가 모두 오픈소스 기반으로 진행된다.
어도비의 오픈소스 정책은 오픈소스 개발 진영에 힘을 실어주며, 특히 가지고 있는 제품군에 대한 스펙 공개가 저점 진행 되어감에 따라 좀 더 흥미로운 프로젝트들이 만들어 질 것이다.
국내 현실... 개발자가 부족해!!!
국내에서는 플렉스 개발이 기업용 시장에 먼저 도입이 되서 그런지 플렉스 개발의 수요는 느는데 플렉스 개발자들이 많지 않다. 그러다 보니 기업에서는 기존의 다른 개발자에게 강제적으로 시키는 악순환이 벌어지고 있다고 한다. 플렉스는 기존에 사용하던 언어와는 조금 다른 관점을 가져야 하는 만큼 기회가 된다면 필히 교육을 받아야 겠지만 안된다면 스터디그룹을 활용하면 큰 도움이 될 것이다.
플렉스에 대한 공식적인 한글 문서는 제공되지 않는다. 하지만 개발자 그룹 내에서 몇몇 개발자들이 시작한 번역작업이 모아져 하나의 비공식 사이트로 운영이 되고있다. 플렉스/Air Docs한글화 페이지(http://flexdocs.kr)이라는 곳을 통하여 API를 비롯한 각 부분의 문서가 제공되고 있다. 또한 번역 작업의 모든 내용이 Subversion을 통해 공개되고 참여할 수 있어 누구나 원하는 분들은 참여가 가능하다.
오픈소스라 함은 개발자 친화적인 개발환경을 만들어 내고 있다. 오픈이 되다보니 더 많은 생각을 공유하게 되거 더 많은 방법들이 나타나고 그 중 최적화된 작업을 이끌어내게 된다. 올 3월 나오는 플렉스는 여러모로 큰 기대를 하게 만든다.
<<참고자료>>
1. http://www.onflex.org/ted :: 어도비의 플렉스 에반젤리스트 테드 패트릭(Ted Patrick)의 블로그
2. Microsoftware 08/01호
2008년 웹쪽에서의 트렌드는 아무래도 작년부터 화자되었던 웹 2.0이 아닌가 싶다.
web 2.0을 기술적으로 구현하는데 있어서 가장 많이 눈에 뛰는 단어는 Ajax였다. Ajax의 산출물은 어떠한 클라이언트, 브라우저, 운영체제, 디바이스등에 독립적으로 RIA를 구현할 수 있게된다.
Ria는 IT word에 포스팅 했으므로 추가 설명하지는 않겠다.
Ajax는 차세대 웹 어플리케이션을 위한 최선의 대책이라 이야기 되어 왔지만 개발자들이 귀찮아 하는 베스트 3에 빠지지 않는 Javascript를 사용함으로서 개발자와의 거리를 두었는지 모르겠다. 이는 실버라이트 1.0과 상황이 비슷하다고 판단되어진다. 그런 반면 Flash 수준의 화려한 UI를 보여주는 최선의 대안으로 Flex가 등장하였다.
그렇다고 Javascript나 Ajax를 깍아내리는 것은 아니다. 지구상 곳곳에 쓰이고 있는 언어가 Javascript라고 필자는 생각하니 말이다. 단지 Flex는 Ajax의 단점을 장점으로 가졌다랄까?
Flex(Flex Presentation Server)??
web 2.0의 RIA를 구현을 쉽게 해주는 스크립트 언어이다. Flash 기술로부터 탄생하였기 때문에 두 기술로 구축된 사이트는 비슷한 UI를 가진다. Flash는 각종 도형과 컴포넌트들을 마우스로서 디자인 하는 반면 Flex는 그런 Flash 컴포넌트들을 XML 태그 스크립트를 이용하여 코딩한다.
Flex.. 어떤 기술이.??
개발언어 측면에서 플렉스는 XML, EXMAScript, CSS, UTF-8 기술 요소를 사용한다.
플렉스의 mxml은 'mx'라는 XML 네임스페이스를 사용하여 XML 문법을 따르며 ECMAScript는 플렉스 앤션스크립트가 준수하는 표준으로 자바스크립트와 유사하다. 또한 MXML 스타일은 CSS문법을 지원하고, 파일은 UTF-8로 작성 및 저장되어 서버에서 처리된다.
서버 서비스 측면에서 DOM 레벨 3 이벤트 모델은 플렉스의 이벤트 모델로 사용되며 DOM 트리 구조를 통해 이벤트를 전달한다. 플렉스 애플리케이션은 HTTP 통신 뿐 아니라 XML 통신 프로토콜인 SOAP 메세지로 데이터를 송수신할 수 있다. 이외에 플렉스는 자바 애플리케이션 서버에서 작동되며 플렉스에서 자바진즈 컴포넌트의 메쏘드를 호출하여 결과를 받을 수 가 있다.
Flex 서버의 구성!?
Flex는 국제 표준에 기반하여 구성되었고 ActionScript(Javascript), MXML(XML), DOM3 등의 표준위에 Adobe의 API와 클래스 라이브러리가 추가된 형태이다. Javascript의 언어적인 단점을 보완한 ActrionScript는 강력한 객체지향 언어로 거듭났을 뿐만아니라 Flash의 기존 버전에서 검증되었던 강력한 라이브러리들을 Flash보다 편리하고 쉽게 이용할 수 있게 해준다.
Flex의 구동 원리..
사용자가 플렉스로 구현된 사이트로 접속하면 웹애플리케이션 서버에 설치된 플렉스 서버는 MXML 코드를 SWF(플래시 실행파일)로 컴파일해서 사용자 PC에 전송되어 플래시 플레이어가 이를 보여준다.
이러한 Flex로 구축하였을 때에 제일 큰 장점은 플레시 플레이어로 작동이 되기때문여 여타 플랫폼이나 운영체제로 부터 독립적으로 동일한 결과물을 얻을 수 있다는 것이다. 또한 한번 로딩이 되면 서버로부터 실행코드를 받을 필요가 없어 속도가 빠르며 서버의 부하가 적다. 개발자 측면에서도 XML태그와 액션스크립트로 코딩되므로 Html코딩을 이해하는 수준정도로도 쉽게 배울수 있는 장점이 있다.
무엇보다 컴포넌트를 다양한 방법으로 만들어 코드 재사용이 높아 개발속도가 향상이 된다. 다른 시스템과 다른 애플리케이션과 연동할 수 있는 다양한 방법도 제공을 한다.
<<참고사이트>>
1. http://blog.naver.com/cache798
쉬운 예로서 CGV영화관에 예매 서비스를 말할 수 있다.(http://www.cgv.co.kr) 새로고침 없이 한페이지에서 구현되는 것을 볼 수가 있다.
History..
RIA는 2002년 Macromedia(현재의 Adobe)에 의해 소개되었지만 개념적으로 유사한 내용들은 이전에도 있었다. 1998년 Microsoft는 Remote Scripting을 소개하였고, 2000년 Forrester Research는 X Internet을 소개하였다. 더불어 리치 클라이언트, 리치 웹 클라이언트 또한 RIA와 유사한 기술적인 분류로 이야기 할 수 있다.
그러던 중 2002년에야 비로서 RIA의 실제 적용사례가 소개된다. 플래시와 콜드퓨전(CFML)을 이용한 TravelClick의 Broadmoor 호텔의 OneScreen이라는 예약 시스템이었다. (http://www.broadmoor.com)
2004년에는 Macromedia에서 플렉스를 엔터프라이즈 개발자를 위한 새로운 플랫폼으로 소개하였다. 기존 플레시가 가졌던 단점을 해결하고 새로운 RIA개발 환경을 위해 새로운 서버 제품으로 출시하였다. 현재 플렉스 3가 2008년 RIA시장에 기대주로 손꼽히고 있다.
이러던 중 RIA는 2005년 구글 진영의 구글 맵으로 인해 강렬한 인상을 사용자에게 주게 된다.
이후 웹 2.0에 대한 소개와 실제 구현 사례를 통해 RIA는 웹 비지니스의 중요한 요소로 성장하였다.
Why???
웹 응용 프로그램은 서버를 중심으로 모든 처리가 수행되고 상용자의 웹 브라우저를 통해 그 결과를 출력하는 구조로 이루어진다. 이것을 흔히 씬 클라이언트(thin client)라 부르는데 이 경우 서버에서 많은 작업이 필요한 경우 무작정 기다려야 하고 서버의 처리시간이 길어지면 서버와의 통신이 끊겨 더 이상 이용할 수 없는 단점이 발생해 버리기도 한다. 이런 것을 보완하고 사용자 인터페이스를 향상하기 위한 시도가 바로 RIA이다.
장점!!
1. HTML 위젯(widget)을 사용하는 효과 이상의 보다 그래픽 적인 인터페이스를 공급 할 수 있다.
2. 클라이언트에 비지니스 로직 부분을 구현하여 복잡한 계산을 클라이언트에서 수행할 수 있다. 그렇기 때문에 보다 향상된 서버의 응답을 구현 할 수 있는 것이다.
3. 비동기 통신(Asynchronous communication)을 이용하여 사용자에게 보다 빠른 응답속도를 보이는 것처럼 구현할 수 있다. ( 예 : 구글 맵(Google Maps))
4. 실제 필요한 일부분의 데이터만 서버로 전달하고, 그 결과를 클라이언트 페이지의 일부 영역에 반영할 수 있기 때문에 네트워크 자원의 사용량도 감소한다.
단점 아닌 단점!???
RIA는 사용자 인터페이스 개선 및 성능 향상이라는 두마리의 토끼를 잡을 수 있는 현재 진행형의 기술이지만 그만큼 개발의 난이도는 매우 높다. 하지만 사용자는 이런 개발자의 고충을 알 필요가 없다. 단지 쓰기 편하고 매력적인 프로그램을 사용할 것은 당연하다. 결국 개발자만 죽어난다...
RIA의 종류!?
l AJAX/DHTML: 자바 스크립트와 XML을 이용한 비동기 호출을 사용하는 방식으로 웹 2.0에서 많은 주목을 받고 있는 기술의 조합이다. 현재 많은 업체에 의해 AJAX를 쉽게 개발할 수 있도록 툴 킷들이 공개되고 있다.
l 플래시(Flash): Adobe(이전 Macromedia)의 대표적인 벡터 방식의 그래픽 환경으로 현재 대부분의 브라우저에서 동작한다. 화려한 사용자 인터페이스를 구현하고, 액션스크립트(ActionScript)를 이용하여 비즈니스 로직을 구성할 수 있다.
l 플렉스(Flex): Adobe가 소개한 엔터프라이즈 개발을 위한 플랫폼으로 플래시의 SWF로 그 결과물을 출력하나 플래시와는 완전히 다른 새로운 기술이다.
l 오픈라즐로(OpenLaszlo): Laszlo System에 의해 시작된 오픈소스 플랫폼으로 RIA 구현을 위해 사용할 수 있으며, LZX라는 새로운 인터페이스 언어를 사용한다. 그 결과물은 플래시 플레이어에서 동작하는 SWF 파일로 출력된다.
l WPF: Microsoft에서 새롭게 소개하는 차세대 벡터 방식의 그래픽 환경으로WPF/E를 활용하여 RIA를 구현할 수 있으며, XAML과 Jscript의 기반한 프로그래밍 모델을 가진다.
l XUL: XML 기반의 사용자 인터페이스 마크업 언어(User Interface Markup Language)로 모질라(Mozilla) 기반의 웹 브라우저에서 HTML/XHTML을 대신하여 사용할 수 있다.
l 액티브X(ActiveX): 윈도우 응용 프로그램을 웹 페이지상에 실행할 수 있는 기술로 마이크로소프트에 의해 소개되었다. 인터넷 익스플로러(IE)에만 동작하는 단점을 가지고 있다. 또한 다른 방식의 RIA 구현과는 다르게 일반적으로 클라이언트에 설치되어 실행하기 위해서는 공인 인증서를 발급(유료)받아야 하는 번거로움이 있다. 물론 브라우저 설정에 따라 이런 과정 없이 설치 및 실행할 수 있으나 클라이언트의 자원을 제어할 수 있는 보안의 취약성이 큰 문제를 발생하기도 한다.
l 스마트클라이언트(SmartClient): Microsoft의 닷넷(.NET) 기반의 윈도우 프로그램을 웹 상에서 실행할 수 있는 기술이다. 보안설정과 클라이언트에 닷넷 프레임워크의 설치가 필수이다.
l 자바 애플릿(Java applet): 자바 응용 프로그램을 웹 페이지 상에서 실행할 수 있는 기술로 오래 전부터 사용되었다. 다양한 클라이언트의 제어를 할 수 있는 장점에도 불구하고, 느린 속도와 대체 가능한 기술들에 의해 그 사용이 점점 줄어들고 있는 상황이다.
l 자바 응용프로그램(Java application): 자바 웹 스타트(Java Web Start)는 자바 응용 프로그램 자체를 웹을 통해 클라이언트에서 실행할 수 있도록 허용한다. 웹을 통해 자바 응용 프로그램을 실행하는 방식으로 RIA를 구현할 수 있다.
1. http://blog.naver.com/neovis7






Recent Comment