태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'플렉스'에 해당되는 글 11건

  1. 2009.06.07 Flash Catalyst, 베일을 벗다 (3)
  2. 2009.02.03 Flex Builder Gumbo 살펴보기 3부 (4)
  3. 2009.01.18 플렉스, 한글문제 어떻게 되어가고 있을까? (10)
  4. 2008.12.31 2009년, Flash Platform은 어떤변화를 맞이하게 될까요? (7)
  5. 2008.12.11 나랏말싸미 미쿡에달아, 한글은 어디에? (12)
  6. 2008.12.10 Flash Builder4 살펴보기 1부 (17)
  7. 2008.12.06 [AS3] RFC822 Date형 사용하기 (6)
  8. 2008.11.18 Flex 3.2 릴리즈 (2)
  9. 2008.11.17 Flex, 역사속으로 사라지다 (27)
  10. 2008.10.11 [FLEX/AIR] 현재까지 발견된 한글처리 문제 (15)

Flash Catalyst, 베일을 벗다

지난 1일, Flash Builder4, Flash Catalyst의 베타가 공개되었습니다. 플렉스빌더의 브랜딩네이밍 변경 소식이 알려진 지 약 2주만인데요. 공개 베타가 출시되자마자 국내외에서도 이와 관련된 소식이 전파되고 있습니다.

[Adobe RIA 소식]Flash Builder 4 Beta 배포
[Adobe RIA 소식]Flash Catalyst 배포
Flash Catalyst/Flash Builder 4/Flex SDK 4에 대해서 공부해보자.

어도비에서 작년 NA MAX에서 밝힌 공개베타 시점에 비해 약 3개월 정도 늦어진 시점에 공개베타가 발표된점을 미루어보아, 정식 릴리즈도 올 연말에서 내년 초로의 연기가 불가피해 보입니다.

플렉스3 공개베타에는 Adobe AIR(베타 Apollo)로 시끌시끌 했는데, 이번 공개베타에서는 플래시 빌더로의 브랜딩네이밍 변경, 그리고 새롭게 도입되는 플래시플랫폼 협업툴인 카탈리스트의 첫 공개로 시끌시끌 하네요. ^^;



2년의 기다림, 그리고 Thermo

플래시 카탈리스트는 2년전 어도비 최대 컨퍼런스인 MAX에서 처음으로 공개되었습니다. 공개베타가 올 중순에 공개되었고, 정식 릴리즈가 올연말~내년으로 예정되어 있는 만큼,  어도비의 여러 플랫폼 가운데 가장 긴 개발 기간을 가진 플랫폼으로 기록되는군요.

플래시 카탈리스트의 코드네임은 Thermo였습니다. 여기서 필자의 상식(?)을 동원해보자면, Thermo는 물리학에서 열의 양을 뜻합니다. 물리문제를 풀때 흔히들 약어로 Therm이라고 쓰기도 합니다. 물론, Adobe Thermo가 물리학에서 다루는 열량인지에 대해선 아직 확실하진 않습니다.. ^^

위의 화면은 초기 Thermo의 모습이었다는데 지금과는 인터페이스가 다른 면이 많습니다. cs4 출시전이라 더욱 그랬을까요? 하지만, 저 때 당시에도 포토샵, 일러스트레이터와 같이 어도비  크리에이티브 플랫폼에서 작성된 파일들도 그대로 불러와서 작업할 수 있고, 그 결과를 그대로 플렉스로 내보낼 수 있었습니다.

그리고, 작년 MAX에서는 Thermo의 브랜드네이밍이 Flash Catalyst로 확정되었습니다. 또, 참석자와 관계자에게 처음으로 비공개베타버전을 배포하였지만, 당시 가장 뜨거웠던 이슈가 바로 Flex builder의 브랜드네이밍이 Flash Platform으로 통폐합 한 것이 아닐까 싶네요. ^^;;

Catalyst는 한국어로 “촉매제”입니다. 열량에 이어 촉매제라.. 뭔가 과학적인 뉘앙스가 물씬 풍기네요. Catalyst의 stinger동영상에도, 많은 동위원소들이 지나가면서 여러 플래시플랫폼과, 크레이티브플랫폼 가운데에 화학반응이 일어나면서 플래시 카탈리스트가 새롭게 만들어지는 모습을 볼 수 있습니다.

Catalyst가 촉매제인 만큼, 어도비에서도 플래시플랫폼 개발자와 크레이티브 플랫폼 디자이너가 서로 잘 섞일 수 있는 플랫폼임을 강조하는 바가 크다고 보여집니다.



플래시 촉매제(Flash Catalyst)

플래시 카탈리스트는, 플래시 빌더와 함께 지난 1일 개발자와 디자이너들에게 공개되었습니다. 공개 당일, 다운로드 속도가 50kb를 맴돌 만큼 폭발적인 인기를 보였습니다.

플래시빌더는 그 전신인 플렉스빌더3를 거쳐오면서 인터페이스와 여러 기능들이 많이 알려지고, Flex4(코드네임 Gumbo)의 SDK도 공개되어 있는 만큼 많은 개발자들이 익히 사용할 수 있는 데에 반해, 플래시 카탈리스트는 이번 베타가 처음으로 공개되어서, 아직 많은 분들이 플래시 카탈리스트에 대해 생소할 것이라고 생각합니다.

플래시 카탈리스트는 간단히 말하자면, 크레이티브 스위트와 플래시 빌더 사이의 중간 다리로써, 디자이너가 작업한 결과물의 페이지, 인터렉션, 타임라인을 정의하여 플래시 빌더에서 바로 활용할 수 있는 협업 툴입니다.

 

Flash Catalyst는 페이지, 인터렉션, 타임라인과 같이 크게 세가지 부분으로 나뉩니다. 페이지는 swf 출력물에서 보여질 화면으로, 플렉스에서는 state와 같은 역할을 합니다.
(flex4에서는 state의 구조가 바뀌었습니다.(참고))

페이지에는, 아트워크와 컴포넌트를 삽입할 수 있는데, 아트워크는 그림, 원, 선, 면과 같이 그래픽 오브젝트를 뜻합니다. 일단, 디자이너가 작업한 모든 레이어들은 아트워크 형태로 페이지에 담기게 됩니다.

그리고, 아트워크들은 플렉스에 정의된 컴포넌트로 변환할 수 있습니다. 컴포넌트로 변환을 하게 되면, 아트워크가 플렉스4의 컴포넌트로써 기능을 하게 되는데, 카탈리스트에서 정의할 수 있는 컴포넌트(베타기준)는 버튼, 텍스트입력상자, 가로/세로 스크롤막대, 데이터목록등이 있습니다.

각 아트워크와, 컴포넌트사이에는 인터렉션(동작)에 따른 타임라인의 변화를 설정해 줄 수 있습니다.  먼저 애플리케이션 로드와 같이 응용프로그램과 관련된 인터렉션을 정의 할 수 있고, 마우스 클릭, 마우스 오버와 같이 각 컴포넌트에 정의된 이벤트로 인터렉션을 정의 할 수 있습니다.

타임라인은 플래시 타임라인과 같이, 여러 모션 효과등을 지정할 수 있습니다. 카탈리스트에서 모션은, Flex에 정의된 모션(페이드인, 리졸브, 3d효과)를 뜻합니다. 지정할 수 있는 타임라인은  크게 두 가지로, 앞서 다룬 페이지 전환에서의 효과와, 그 이외에 동작 시퀀스를 정의 할 수 있습니다.

이렇게 플래시 카탈리스트로 저작된 결과물은 mxml과 fxg 형태로 담기게 되며, 프로젝트에서 사용된 여러 라이브러리(asset)와 함께 fxp 파일 형태로 저장되게 됩니다. 이 fxp 파일을 이용해 카탈리스트에서 계속해서 작업을 진행 할 수 있고, 개발툴인 flash builder에서 불러와 개발자가 코딩을 진행 할 수 있습니다.

또한 재미있는 점은, 카탈리스트를 통해 인터렉션이나 타임라인을 제작하는 중에도, 페이지에 담긴 아트워크들은 영향을 받지 않기 때문에, 포토샵, 일러스트레이터와 같은 크레이티브 스위트에서 디자인을 변경 할 수 있고, 그 변경사항은 바로 카탈리스트에 반영 됩니다.


어떻게 협업이 이루어질까?

이처럼, 플래시 카탈리스트는 페이지, 인터렉션, 타임라인으로 나뉘어져 있고, 페이지를 구성하고 있는 여러 아트워크들은 따로 분리되어있기 때문에, 크레이티브 스위트 제품군을 사용하고 있는 디자이너와의 협업도 가능하며, 플래시 카탈리스트에서 저작한 결과물도 mxml, mxml 컴포넌트, fxg, asset와 같은 형태로 담겨, 플렉스 개발자와의 협업도 가능합니다.

정리하자면, 플래시 카탈리스트는 디자이너와 플렉스 개발자 사이의 중계자 역할을 하는 툴이라고 볼 수 있습니다.

하지만, 위에서 설명한 것 처럼, 플래시 카탈리스트에서 진행할 수 있는 작업은 페이지 설계, 인터렉션 설계, 타임라인 지정 정도입니다. 실제 플래시/AIR 애플리케이션 프로젝트를 진행할 때에는 이외에도 많은 작업이 필요합니다. 특히, 동적인 모션을 활용하는 부분이 많은 애플리케이션의 경우 카탈리스트에서 사용할 수 있는 모션만으로는 역부족하므로, 별도로 플래시를 이용한 작업이 필요하게 됩니다.

위처럼, 카탈리스트가 할 수 없는 부분은, Flash Builder에서 보충해 주고 있습니다.

기획, 프로토타이핑과 같은 과정을 거쳐, 디자인 과정 이후(사실상 동시지만), 애니메이션, 모션, 커스텀 컴포넌트개발처럼 카탈리스트에서 할 수 없는 작업은 플래시에서 진행하고, 이외의 작업들은 플래시 카탈리스트에서 진행 하고, 위 두 결과물을 Flash Builder에서 개발 시 합치면 됩니다.

“그렇게 해서 협업이 가능한가?” 라고 생각하실 분들이 있으실텐데, 결론부터 말씀드리자면 아주 원할히 잘 됩니다. Flash CS4에서 부터는 FXG라는 새로운 그래픽 포맷이 도입되었으며, 카탈리스트 처럼, 포토샵, 일러스트레이터에서 작업한 그래픽 결과물을 그대로 Flash CS4상으로 불러올 수 있습니다. 그리고, Flash CS4에서 작업한 결과물을 swc 형태로 내보낸후, Flash Builder에서 불러와서 개발시에 활용 할 수 있습니다, 그리고 Flash Builder4에서는 Flash CS4와 협업할 수 있도록, Flash Component 기능이 추가 되었습니다.(참고

뭔가 더 복잡해지고 애매해진것 같죠? 하지만 결론은 간단합니다. 플래시 카탈리스트에서는 화면, 인터렉션, 타임라인을 정의 할 수 있고, 이외에 애니메이션, 모션, 커스텀 컴포넌트와 같은 카탈리스트에서 지원하지 않고, 좀 더 복잡한 모션이나 기능이 필요한 경우엔 Flash CS4에서 작업을 진행 할 수 있습니다. 물론, Flash CS4, Flash Catalyst 모두 크레이티브 스위트 제품군(포토샵, 일러스트레이터)와 완벽히 연동이 되며, Flash Builder을 통해 개발자와도 협업을 할 수 있습니다.


아쉬운 카탈리스트

필자의 극진한 카탈리스트 찬양(?)에 이어, 카탈리스트에 대한 쓴소리도 함께 해보고자 합니다. 아직, 카탈리스트가 베타버전이어서, 이러한 쓴소리를 꺼내는 것 자체도 좀 그렇네요.

아쉽게도 이번 플래시카탈리스트의 베타1버전에서는 알파베타때 future로 표시된 많은 기능들이 제외된 채로 출시되었습니다. 그 예로, 이번 베타에서는 플래시 빌더에서 카탈리스트 프로젝트의 변경사항을 임포트하면 자동으로 리팩토링 하는 기능이 이번 베타에선 제외되었군요.

그리고 플래시카탈리스트의 인터페이스 중, HUD 창에 대해서도 불만을 토로하고자 합니다. HUD창은 위의 창 처럼, 아트워크에 대한 여러 가지 설정을 할 수 있는 창입니다. 실제로 플래시카탈리스트의 거의 모든 작업들은 HUD창에서 이루어진다고 해도 과언이 아닌데요. 문제는, 이 HUD창에 소소한 오류들이 많다는 점입니다. HUD창이 카탈리스트의 창을 벗어난다거나, HUD창에서 체크한 부분이 지워지지 않는 문제등인데, 이 문제들이 빠른시일내로 수정되길 바랍니다.

또, 플래시카탈리스트가 디자이너-개발자간의 협업을 강조하면서도, 정작 개발자와 디자이너가 서로 만날 공간이 없다는 점입니다. 물론, 작은규모의 회사에선 직접 부딪히면서 일을 하겠지만,  규모가 클 수록 또 여러명의 개발자와 디자이너가 투입되는경우 가능할까요? 또, 결과물을 같이 보면서, 함께 이야기 나눌 경우도 종종 생기구요. 어도비 애크로뱃9에 있는 문서공유협업 기능이 플래시 카탈리스트에 도입되면 어떨까 하는 바람도 있습니다.

마지막으로 다루고자 하는 문제는, 필자가 관심을 두는 한글문제 인데요. 카탈리스트의 Textinput 컴포넌트는 포토샵, 일러스트의 텍스트 레이어 아트워크를 텍스트입력 컴포넌트로 변환해서 지정 할 수 있습니다. 문제는, 이때 디자인툴에서 사용한 폰트가 리소스(asset)에 함께 포함이 되는데요. 영문폰트의 경우, 대체로 폰트의 크기가 작아서 문제가 없지만, 한글 폰트의 경우 용량이 상당히 커지기 때문에, 개발자가 플래시 빌더에서 이에 대한 부가 작업이 필요하게 됩니다.



블랜드와 카탈리스트

실버라이트 vs 플렉스의 경쟁구도가 있다면, 새롭게 출시되는 플래시플랫폼 협업툴인 플래시 카탈리스트는 마이크로소프트의 익스프레션 블랜드와 닮은 모습이 많아 보입니다.

Microsoft Expression Blend는 .NET Framework 3.5 기반의 WPF, 실버라이트 애플리케이션의 XAML을 저작하는 협업툴로, 최근엔 베타3버전도 출시되었다고 합니다. 이제 막 출시되는 카탈리스트에 비해 뼈는 굵은 편인데요.

블랜드도 크게, 인터렉션, 개체, 타임라인과 같이 세개의 요소로 나뉩니다. 즉, 화면상에 있는 개체의 인터렉션과 타임라인을 정의하고, 그 결과는 XAML형태로 저장되며, 개발자는 그 파일을 이용해 작업을 진행 할 수 있습니다.

두가지 툴을 비교함은 좀 그렇지만, 가장 다른점은 카탈리스트는 중계자에게 많은 권한을 주진 않지만, 블랜드는 중계자에게 많은 권한을 주는것에 있겠네요.

카탈리스트는 위에서 살펴본것 처럼, 사실상 포토샵이나 일러스트레이터로 작성된 파일을 불러와, 작업을 하게 됩니다. 중계자가 하게 될 작업도, 아트워크를 컴포넌트로 변환하고, 화면전환과 같은 모션을 타임라인에 지정하고, 각 컴포넌트의 인터렉션을 정의해서 타임라인에 엮는 일 이외엔 없죠. 디자인에서 변경 및 추가사항이 생기면 크레이티브 스위트 제품군에서 작업을 하고, 조금 더 복잡한 모션이나 커스텀 컴포넌트를 만들게 될경우엔 Flash CS4상에서 작업을 하게 되죠.

하지만 블랜드는, 위에서 나열된 크레이티브 스위트, 플래시CS4, 플래시카탈리스트에서 할 거의 모든 작업들을 중계자가 하게 됩니다. 그러다 보니, 처음 접하는 디자이너에겐 약간의 부담이 될 수도 있겠습니다만, 그 만큼 전문적인 중계자 툴을 형성한 점은 어도비에 있어서도 큰 위협이 될 수 있겠네요.

이 두가지를 놓고 보면, 서로서로 어느 정도 장단점은 있어 보입니다. ^^;

최근 익스프레션 블렌드3의 베타도 출시되었다고 하네요. 블렌드3에서는 포토샵 파일도 불러올 수 있다고 하니, 중계자가 해야 할 노가다 작업은 약간은 줄어들게 되는걸까요?

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 2 Comment 3

Flex Builder Gumbo 살펴보기 3부

* 글의 길이가 길어짐에 따라, 2부에 이어, 별도로 3부를 이어서 진행합니다. 2부는 여기에서 보실 수 있습니다.

Data/Service

Adobe Flahs Platform이 RIA라는 명칭을 얻게 된 계기는 웹에 있는 자원과 통신을 하게 된 것이 시초라고 해도 과언이 아닐것입니다. Flash가 웹에 있는 정보를 불러와, 사용자에게 제공함으로써, 단순한 동적인 애니메이션 플레이어가 아닌, 정보를 제공할 수 있는 UI/UX의 새로운 돌파구로 까지 변모하게 되었습니다.

Flex에는 웹의 자원과 통신을 하기 위해, HTTPSerivce, WebService, RemoteObject와 같은 RPC 서비스와, LCDS와 통신할 수 있는 데이터서비스를 지원하고 있습니다.

하지만, 애플리케이션을 개발할때 마다 매번 웹과 통신하는 부분을 백앤드, 프론트앤드에 나눠 코딩해야 햐기 때문에, 실제 코딩에서는 만만치 않은 분량을 차지하게 됩니다.
(실제로, 이러한 작업을 줄이기 위해 mysql과 바로 데이터 통신을 할 수 있는 asql 프레임워크도 있지만, 백앤드와는 달리, swf파일은 리버스엔지니어링을 통한 디컴파일이 가능하기 때문에 권장하지 않습니다.)

어도비에서는 이처럼 웹의 자원과 통신하는 부분의 코딩을 자동화 해주는 기능인 스캐폴딩을 Flex3에서도 도입했으나, 로컬의 데이터베이스를 직접 불러와서 백앤드의 코딩으로 생성해 주기 때문에, 반응은 다소 좋지 않았습니다.


사용자 삽입 이미지

Flex Builder Gumbo에서는 Flex3의 스캐폴딩 기능의 단점을 보안한 Data/Services가 새롭게 추가되었습니다.

사용자 삽입 이미지

Data/Services가 플렉스3의 "Create Application from data Services"와 다른점은, 백앤드에서 작성된 규칙에 맞게 클래스를 자동적으로 생성 해 주기 때문에, 로컬의 데이터베이스가 필요가 없으며, 백앤드 개발자와도 조금 더 효율적으로 협업할 수 있습니다.

또한, ODBC/백앤드 언어로 스캐폴딩 되었던 기존의 플렉스 3와는 달리, Flex의 데이터 통신 방법을 기준으로 스캐폴딩 되기 때문에, 백앤드 언어의 제약 없이, 스캐폴딩을 할 수 있습니다.

Flex Builder Gumbo에서 현재 지원되는 Data/Services는 HTTPService와 WebSerivce 두종류이지만, 정식버전에서는 콜드퓨전의 차기버전인 "Spark"를 이용한 스캐폴딩도 지원될 예정입니다.

사용자 삽입 이미지

위의 그림처럼, 생성될 서비스명이나, URL등을 지정해 주면

사용자 삽입 이미지

자동적으로 웹과 통신하는 클래스들이 생성됩니다.
이 클래스들을 활용하여, 개발을 진행 할 수 있습니다.

사용자 삽입 이미지

아울러, 위의 클래스를 활용하여, 자동적으로 데이터 그리드를 생성해주는 기능도 추가되었습니다.


디버깅환경의 변화

애플리케이션 개발 과정 중 코딩 보다 어쩌면 디버깅이 더 많은 작업분량을 차지한다고 해도 과언이 아닙니다. 그 만큼 버그없는 완벽한 애플리케이션을 개발하려면 코딩은 필요조건 디버깅은 충분조건이라고 볼 수 있겠네요.. ^^

Flex Builder Gumbo에서는 조금 더 편리하게 디버깅 할 수 있도록, 새로운 기능들이 추가되었습니다.

건너 뛰기
디버깅을 하면서, 개발자가 가장 두려워 하는 부분이 for문과 같이 계속 반복되는 구문에 브레이크포인트가 걸려있을 경우가 아닐까 생각됩니다. ^^;; 이 경우 브레이크 포인트를 해제해야 무사히 넘어갈 수 있겠죠?


이외에, 디버깅 상황에 따라 필요없는 브레이크 포인트를 만난다거나, 브레이크포인트가 걸려있지 않은 곳으로 이동하고 싶은 경우가 생길 수 있습니다.

Flex Builder Gumbo에서는 이러한 상황을 위해(?), 라인건너뛰기 기능을 지원합니다. 브레이크포인트가 걸려있는 상황에서 건너뛰고 싶은, 라인에서 오른쪽 버튼을 눌러 Run to Line를 클릭하거나, Ctrl+R을 눌러, 해당 라인으로 건너뛸 수 있습니다.
(사실 이런기능이 이전버전 부터 지원했어야하는데.. 라는 아쉬움도 남습니다.. ㅎㅎ)


컨디션 브레이크포인트
위의 상황처럼 디버깅을 진행하면서 반복된 구문을 계속해서 돌고 있는데, 브레이크 포인트가 걸려있다면, 반복 과정중 무시할 수 있는 경우의 수에서도, 브레이크가 걸리게 됩니다.

따라서, 이런 경우에는 if와 같은 조건문으로, 브레이크를 조절 할 수 있지만, 조건문의 설정으로 애플리케이션에 예상하지 않은 문제가 발생할 수도 있습니다.

Flex Builder Gumbo에서는 브레이크 포인트가 브레이크 걸리는 조건을 제한을 둘 수 있는 컨디션 브레이크가 새롭게 추가되었습니다.


예를들어 위의 애플리케이션은 350ms마다 ontimer가 디스패치 되고, 디스패치 될때마다 '잇힝~'이라는 문자열을 콘솔에 출력하게 됩니다.

만약, '잇힝~'이 세번 출력될 경우 브레이크가 걸리도록 지정하고 싶다면, 브레이크 포인트를 걸어두고, Breakepoint Properties에 들어가면,


위의 그림처럼, 브레이크 포인트를 설정 할 수 있는 창이 나타나게됩니다. 이 창에서 브레이크포인트가 걸리는 조건을 설정 할 수 있는데, 컨디션 조건문은 if의 조건문과 같이 설정 할 수 있습니다.

그리고, 컨디션 조건문의 브레이크가 걸리는 경우를 설정 할 수 있는데, 컨디션 조건문이 true이거나, 컨디션 조건문의 상태 변화가 있을경우로 지정할 수 있습니다.


컨디션 브레이크포인트를 지정하게 되면, 일반 브레이크 포인트와는 달리, 브레이크 포인트 위에 물음표가 나타나게 됩니다.


컨디션 브레이크포인트를 지정하고 테스트한 모습입니다. 콘솔창에 '잇힝~'이라는 문자열을 3회 출력한 후에 브레이크 포인트가 걸리게 됩니다.

컨디션 브레이크포인트를 적절히 잘 활용하면, 디버깅 과정중 반복문도 경우의 수에 따라, 조건에 마침맞게 디버깅 할 수 있습니다.


Unit Test 지원

개발자는 애플리케이션을 개발 하는 과정 중, 디버깅을 통해 애플리케이션의 버그를 해결할 수 있습니다. 이후, QA팀이 있는 조직일 경우, QA팀에서 애플리케이션의 문제점을 날카롭게 살펴보게 됩니다.

이러한 QA테스트 이전에, 개발자가 기계적으로 여러 조건을 걸어두어 해당 애플리케이션을 테스트 할 수 있습니다. 이러한 테스트를 유닛테스트(Unit test)라고 하며, Java에서는 JUnit라는 프레임워크를 통해 Unit Test를 할 수 있습니다.

어도비에서는 플래시/플렉스 애플리케이션에서 이런 유닛테스트를 할 수 있도록, FlexUnit 프레임워크를 개발하여 배포하고 있습니다. FlexUnit는 오픈소스(New BSD)이며, JUnit와 기능적으로 거의 흡사합니다. 다운로드는 여기에서 할 수 있습니다.

사용자 삽입 이미지

Flex Builder Gumbo에서는 위에서 설명한 Flex Unit 프레임워크를 기본적으로 포함하고 있고, 손쉽게 유닛테스트를 할 수 있도록 지원하는 기능이 추가되었습니다.

Unit Test를 하기 위한, Test Case Class와 Test Suite Class가 File의 New 탭에 추가 되었습니다. Test Class를 생성하게 되면, FlexUnit 프레임워크가 자동적으로 임포트됩니다.

사용자 삽입 이미지

위의 그림처럼, TestCase를 추가 할 수 있습니다. 패키지명은 Test Class가 생성될 패키지 위치로, 변경 할 수 있습니다. 그리고, Select Class to test를 선택해, 테스트할 클래스의 탬플릿을 자동적으로 생성 할 수 있습니다.

사용자 삽입 이미지

Test Class를 생성하게 되면, 디버깅 버튼 하단에 Execute Flexunit Tests 탭이 나타나게 됩니다. 이 탭을 누르면,

사용자 삽입 이미지

Test Class에서 지정한 조건에 맞게 유닛 테스트를 시작하게 됩니다.

Flex Unit 프레임워크는 Unit 테스트 결과를 플래시 형태의 Test Runner로 결과를 보여주기 때문에, Flex Builder Gumbo의 Flex Unit Result View 탭 이외에도 인터넷 창에서 Unit Test의 실행결과를 알려주게 됩니다.

Unit Test를 적절히 활용하면, 개발 과정중 예기치 않은 문제들을 조기에 발견 할 수 있고, 또 기계적으로 테스트를 진행할 수 있어서 큰 노력없이 애플리케이션의 테스트를 할 수 있습니다.


지금까지 1년여에 이은, Flex Builder Gumbo 살펴보기 시리즈를 모두 마칩니다. Flex Builder "Gumbo"는 올 H1중에 퍼블릭 베타가 예정중입니다. 퍼블릭 베타는 아래의 경로에서 신청할 수 있습니다.

Flex Builder Gumbo 퍼블릭 베타 신청하기

그럼 이어서 더 좋은글....로 찾...아뵐려고 하는데
어랏?
뭔...가 거시기한걸 깜빡한것 같은데(?)


Flash Catalyst 지원

사용자 삽입 이미지

Flex Builder Gumbo에서는 그간 코드네임 Thermo로 알려진 Flash Catalyst를 공식적으로 지원합니다.

Flash Catalyst는 개발자-디자이너간 중계자 형성 툴로, MS의 익스프레션 블렌드와 다소 흡사한 성향을 가지고 있습니다.

사용자 삽입 이미지

디자이너는, 자신이 디자인한 결과물(일러스트레이터, 포토샵) 파일을 Flash Catalyst로 불러와, 컴포넌트의 역할, 사용자의 인터렉션이나  화면 전환등을 지정 할 수 있고, 완성된 결과물을 개발자에게 전달하여 프로젝트에 바로 활용 할 수 있습니다.

사용자 삽입 이미지
Flex Builder Gumbo에서는 Flash Catalyst로 작업된 결과물(FXP포맷)을 불러와 바로 개발 할 수 있도록 지원하며, 개발 과정중 디자이너가 UI나 UX를 바꿀경우에도, FXP포맷을 불러와 리팩토링 하는 기능을 지원하고 있습니다.

그럼 이 글에 이어서, 3부에 걸쳐 Flash Catalyst에 대해서 자세히 살펴보겠습니다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 4

플렉스, 한글문제 어떻게 되어가고 있을까?

예전에 플렉스의 한글 문제에 대해, 제 블로그에 두번에 걸쳐 다룬적이 있습니다. 언제, 제 블로그를 찾아주시는 분과 직접 만나뵌적이 있었는데, 그 이후 한글 문제는 어떻게 해결되어 가고있는지 많이 궁금해 하시더군요.. ^^

작년 10월 11일경 쓴 [FLEX/AIR]현재까지 발견된 한글처리 문제 라는 포스팅을 게시했을때에는 크게 4가지 이슈가 존재했었는데, 이 글을 쓰는 지금 이 시점에서는 Flex SDK3.2에서 한글 입력문제, Flex SDK Gumbo에서 한글 입력문제등이 추가되어 총 6가지의 이슈가 존재하고 있습니다.

이러한 이슈에 대해 한국어도비 혹은 본사에 버그 리포팅을 진행하거나, 어도비 자체의 버그관리시스템에 여러 분들께서 꾸준히 버그리포팅을 하고 있습니다. 현재, 어도비 버그관리시스템에는 한글 처리 문제에 대해 총 두가지의 티켓이 게시되어 있군요.

Flex SDK 3.2(FP10)에서 한글 입력이 정상적으로 되지 않는 문제(SDK-18244)
Flex SDK Gumbo에서 한글 입력이 상당히 지연되는 문제(SDK-18395)

이런 이슈들에 대해 여러 개발자분들의 노력이 있었지만 아쉽게도 아직 어도비에서 정식적으로 수정된 문제는 없습니다. 하지만 위의 이슈중 2가지 이슈에 대해 개발자들이 자체적으로 컴포넌트를 개발해서 문제를 해결한 사례도 있습니다.

Flash Player의 한글입력시 TextField가 버벅이는 현상 해결 - 블루메탈
AIR 한글삭제문제 해결하기 - 희희덕하며 웃어보자
AIR 한글 입력버그에 대한 대안 - 우아꼬의 Adobe RIA
AIR 한글 텍스트 삭제 버그 수정 - 2 - Eirene's Blog

전체적으로 중간 보고를 드리면, 아직 해결된 문제는 없고 오히려 한글 이슈가 6가지로 더 늘어났습니다. 특히, 올해는 Flex4, Flash Catalyst, Flash Player 차기버전, AIR 차기버전이 출시될 예정이라 이런 한글 이슈들이 더 늘어날 수도 있습니다.

이런 아쉬운 중간보고 사이에, 다소 기쁜소식(?)이 있어서 알려드립니다.

얼마전, 나랏말싸미 미쿡에 달아 라는 글의 "야기될 수 있는 문제" 소제목 에서 Flex Gumbo SDK의 한글 입력문제에 대해 알려드린적이 있습니다.

Flex Gumbo SDK에서는 Textinput컴포넌트는 이전 버전에서 TextField를 상속받은것과는 달리 FxTextbase를 상속받아 개발되어 있습니다.
이 FxTextbase를 자세히 살펴보면 FTE(Flash Text Engine)를 기반으로 개발되어 있는데, 문제는 윈도우 환경에서 이 FxTextbase를 기반으로 개발된 입력컴포넌트에서는 한글 입력시 지연문제가 이전 버전보다 더 심해졌습니다.

이런 문제에 대해 어도비 SDK담당자에게도 직접 메일을 보내보고, 또 버그트래킹 시스템에 등록을 했습니다만..
초기엔 별다른 답장이나, 이슈트래킹에서도 변화가 없었는데, 지돌스타님의 도움으로, 투표자수도 서서히 증가하면서, Internal Review로 변경되고 QA담당자인 Peter Dehan과 이 문제에 대해 몇번 메일을 주고 받은적이 있었습니다.

사용자 삽입 이미지

그리고, 얼마전 Internal Review를 넘어 Under Investigation으로 이슈의 상태가 변경되었습니다. 이슈에 대한 중요도는 8개의 단개중 3번째로 높은 B(비교적 중대한이슈)로 설정되었군요.

Under Investigation단계는 QA담당자로 부터 이슈를 확인한후 SDK 개발 담당자가 해당 이슈를 조사하는 단계입니다. 지금 현재 Carol Frampton에게 이슈가 배정되어 있고, 마일스톤은 다음 버전의 SDK로 설정되어 있습니다. 아마, 곧 해결될수 있겠죠?

추가적으로 Flex Gumbo의 한글 입력 이슈에 대해 의견을 제시하고 싶다면, SDK개발 담당자인 Carol Frampton에게 메일을 보내거나(cframpto@adobe.com), 이슈 트래킹 시스템에 추가적으로 의견을 게시하실수 있습니다. (SDK-18395)

아울러, Flex SDK 3.2에서 한글 입력 문제는 아직, Internal Review 단계도 통과하지 못한 상황입니다. 많은 투표와 의견 제시를 부탁드립니다.(SDK-18244)
(최근엔 열이아빠님께서 이와 관련된 의견을 추가로 게시해주셨네요.. ^^)

여러분의 많은 도움으로 Flex Gumbo의 한글처리 이슈가 곧 해결 될수 있을것 같아, 나름 많은 기대를 하고 있습니다. 특히 그간 4년간 끌어온 한글 입력시 지연문제가 이번에는 확실히 뿌리뽑힐 수 있길 기원해봅니다.

더불어, 위에서 설명드린 한글처리 문제가 빠른시일 내로 해결될 수 있도록 여러분들의 많은 관심을 부탁드립니다.

현재 한국어의 모어 사용순위는 17위로, 비교적 중요한 언어입니다. 작년 베이징 올림픽에서도 한국어가 올림픽 공식언어로 채택되는 만큼, 이제 한국어의 국제적 위상도 과학성과 함께 견고한 입지를 굳히고 있습니다.

하지만, 어도비의 버그트래킹 시스템에 등록된 이슈는 총 2개로 타 국가에 비해 많이 부족한 편입니다. 우리보다 모어사용순위가 낮은 국가인 프랑스어나, 이탈리아어는 9~15개의 이슈가 등록되어있으며, 일본어는 87개의 이슈가 등록되어 있습니다.

우리나라가 타 국가에 비해 시장의 크기는 작은편이지만, 활발한 이슈트래킹으로 이런 이슈들이 좀 더 부각되고, 또 빠른시일 내로 고쳐질수 있길 기대합니다.

아직, Flex에서 한글 처리는 부족한 점이 많습니다. 하지만 부족한 만큼, 더 발전해나갈 가능성도 있는거겠죠?

최근엔, 이런 한글 이슈에 대해 활발히 트래킹을해 주시는 7분과 함께 한글 이슈에 대해 알리고, 또 버그리포팅과 정보 공유를 위한 팀을 결성하였습니다. 앞으로 다양한 매체를 통해 팀의 활동과 성과에 대해 알려드리겠습니다. 
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 10

2009년, Flash Platform은 어떤변화를 맞이하게 될까요?

12월의 마지막 날입니다. 올해는 너무 정신없게 달려와서인지, 오늘이 연말인지도 까맣게 잊고 있었네요. 이글을 쓰는 필자도 10대를 마무리하는 날이라 특히 그 의미가 큰것 같습니다.

저의 10대는 참 많은 변화를 겪어온것 같습니다. 희귀난치병 진단을 받고, 몇일동안 의식불명에 빠져보기도 하고. 고등학교도 자퇴해보고, 대학도 심심삼아 한번 자퇴해보고(?).. 그런데 오늘 곰곰히 생각해보니 이런 격동의 10대의 중심엔 항상 Flash Platform이 자리잡고 있었습니다.

초등학교 1학년때 전산실에서 사다리게임도 만들어보고, 애니메이션도 만들어보고, 그리고 나중엔 전산실 친구들끼리 재미있는 플래시 단편영화를 만들었던것도 기억이나네요.. ^^;;

사실, 이글을 쓰기전 Flex Builder Gumbo 살펴보기 2부를 쓸려고 했었는데, 끊임없이 잡히는 연말약속때문에 스크린샷을 다 찍어두고도 아직 글을 쓸 염두를 내지 못하고있네요. ㅎㅎ 1년에 걸친 장기간의 포스트로 남게되는걸까요?

그럼, 본론으로 돌아가서 이글은 올 한해 Adobe Flash Platform의 변화를 정리해보고, 내년엔 어떤 변화가 있을지 살펴보려 합니다. 사실 그간 너무 많은 변화(?)가 있어서, 다 정리해보진 못하고 몇가지만 추렴해서 정리해보고자 해요.


2008년의 변화

Apollo가 Adobe AIR로
사용자 삽입 이미지

2005년 MAX에서 처음으로 데스크탑 런타임인 코드네임 Apollo가 2년여뒤인 Flex "Moxie"를 통해 공개되었습니다. 이후, Flex3가 정식으로 출시되면서, 코드네임에서 벗어나 어도비의 새로운 데스크탑 런타임인 "Adobe AIR(Adobe Integrated Runtime)"로 거듭나게 됩니다.

사용자 삽입 이미지

이후 ebay, NASDAQ, AOL등 많은 곳에서, 자사 플랫폼에 Adobe AIR를 속속 도입하기 시작하였으며, 국내에는 엠비안에서 픽짜라는 대용량 파일전송서비스를 AIR로 개발해 호응을 얻고 있습니다. 현재는 출시1년만에 AIR로 만들어진 애플리케이션이 수천만개에 이를정도로 혁혁한 변화를 이루어냈습니다.


Flex3 출시
사용자 삽입 이미지

Flex "Moxie"로 알려진 Flex2의 차기버전이 기나긴 퍼블릭 베타를 마치고 2월경 정식버전으로 출시되었습니다.
Flex3는 프레임워크의 모든 소스코드가 오픈소스화 되고,  Adobe AIR를 지원하는등 많은 변화가 있었고, 특히 Flex의 니모닉이 통합어도비의 니모닉 정책에 따라 변화한 만큼 크레이티브스위트 제품군과의 유연한 협업이 가능하도록 몇몇 기능들이 추가되었습니다.

사용자 삽입 이미지

그리고 한국에선 최초로 Flex3의 런칭을 알리는 컨퍼런스인 RIA World를 비롯해 여러 행사가 대대적으로 진행되는 한해였습니다. ^^
(우리에겐 이미 친숙한, 어도비플랫폼 에반젤리스트 라이언 스튜어트 ^^)


AIR1.1, AIR1.5

AIR는 출시이후, 총 두번의 업데이트를 거치게 되었습니다. 지금 현재 AIR런타임의 최신버전은 1.5입니다.
AIR1.1에서는, 다국어 인스톨러지원, 다국어 SDK레퍼런스지원, 메모리문제 해결, 여러 API들의 변화등이 있었지만, 이후 한글입력후 삭제시 자소처리에 문제가 생기게 되었습니다.

사용자 삽입 이미지

AIR1.5에서는 큰 변화는 없었지만, Flash Player 10의 API들이 지원되고, 로컬데이터베이스가 암호화되고, 웹킷엔진이 업데이트 되는등의 변화를 겪었습니다. 다만 AIR1.1에서부터 꾸준히 제기되어온 한글 삭제시 자음처리 문제는 아직 해결되지 않았습니다.

한글처리 문제와, 해결방법에 대해서는 아래의 문서를 참고하세요.
[FLEX/AIR] 현재까지 발견된 한글처리 문제
AIR한글 삭제 문제 해결하기


Flash Player 10
올 한해의 Flash Platform의 변화중 가장 큰 변화라고 손꼽고 싶습니다. 플래시 플레이어의 차기버전인 코드네임 "astro"가, Adobe Flash Player 10로 지난 10월 15일 정식 런칭되었습니다.

사용자 삽입 이미지

Flash Player10에는 정말 많은 변화들이 있었지만, 그중 가장 손꼽고 싶은건 3D효과 지원, 픽셀벤더를 통해 이펙트와 필터 구현, 새로운 텍스트엔진, 동적사운드 생성등이 있습니다. 그 변화들은 아래의 문서들을 살펴보세요.

런칭동영상으로 살펴본 FP10, CS4
[FP10] FileReference는 어떻게 달라졌을까?
Flash Player 10 Feature

하지만, 런칭 초기에는 Flash Player 10의 보안샌드박스의 변화에 여러 서비스가 작동하지 않아, 포털사에서 고객들에게 FP9으로 다운그레이드 하는 방법을 안내하는 진풍경(?)이 펼쳐지기도 했습니다.

Flash Player10 보안샌드박스
Flash Player10 보안샌드박스 변경에 따른 이슈 해결방법


Adobe MAX 2008
어도비에서는 매년마다 자사의 컨퍼런스 중 제일 큰 컨퍼런스인 "MAX"를 각국을 순회하며 개최하고 있습니다. 우리나라에서는 통합어도비의 전신인 매크로미디어 MAX가 2005년, 2006년 개최된 이후 아쉽게도 2년간 침묵을 이어오고 있습니다.

사용자 삽입 이미지

많은 개발자들이 Adobe MAX에 주목하는 이유는 어도비의 신기술 혹은 로드맵들을 발빠르게 알수 있다는 점입니다. 실제로, 현재 알파테스트가 진행중인 Flex Builder "Gumbo"와 Flash Catalyst는 MAX참가자에 한해 배포되기도 했습니다.

올해 Adobe MAX는 지난해에 비해 뜨거운감자로 크게 부상한 기술들은 없었지만, Acrobat를 이용한 클라우딩 컴퓨팅서비스로 라이브소셜애플리케이션을 쉽게 만들수 있는 프레임워크인 코코모(cocomo)와, C/C++의 컴포넌트 소스코드를 AS3컴포넌트 형태로 포팅해주는 아크미(Alchemy). 매쉬업 애플리케이션을 쉽게 저작할수 있는 툴인 두랑고(durango), 어도비 오픈스크린 프로젝트의 일환인 니트로(Nitro)등이 공개되었습니다.

Cocomo가 공개
Cocomo 살펴보기
Alchemy가 공개
Nitro가 공개
Durango가 공개


CS4 출시
Adobe Flash Player10 런칭과 동시에, CS4도 함께 정식적으로 런칭되었습니다.
CS4는 통합어도비 출범 이후, 두번째 맞이하게 되는 크레이티브스위트 제품군으로, 무려 18개의 제품군들이 속해있다고 하네요.

사용자 삽입 이미지

이번 CS4의 솔로건은 "당신의 아이디어를 빛내는 가장 빠른 길"이지만, 정작 어도비는 이번 CS4가 "완벽한 통합"임을 꾸준히 강조하고 있습니다.

사용자 삽입 이미지

이번 CS4는 FXG라는 데이터 포맷이 새롭게 포함되었습니다. FXG는 일러스트레이터나, 인디자인, 포토샵과 같은 그래픽 제품군에서 디자인한 결과물의 원본을 Flash에서 그대로 활용할수 있습니다. 앞으로, Flex 제품군에서도 해당 FXG로 디자이너와 개발자 간의 좀더 원할한 협업이 가능하게 되었습니다.


런칭동영상으로 살펴본 FP10, CS4
CS4 미리보기


어도비, 8%감원
사실 Flash Platform의 변화와 다소 무관할 수 있지만, 경기불황의 여파도 어도비를 피해갈수 없었나 봅니다. 어도비는 지난 12월 3일, 전세계적으로 600여명의 직원을 해고하기로 결정하였습니다.

어도비의 직원수가 7000여명인 점을 가만할때 약 8%의 다소 큰폭의 구조조정을 감행하였는데요. 전체적으로 올해 4분기의 어도비의 매출은 흑자였지만, CS4의 부진한 판매량이 영향이 컸다고 하네요.

특히 우리에게 AIR버스투어 동영상등으로 플래시 플랫폼 에반젤리스트로 잘 알려진 Mike Downey도 이번 구조조정을 피해갈수는 없었다고 합니다.


지금까지는 2008년 Flash Platform의 변화에 대해 다루어보았습니다. 다소 다사다난했던 한해였던것 같네요. 저위에는 아쉽게 들지는 못했지만, Flash Lite가 오픈스펙화 되고, Spring-BlazeDS가 출시되는 등의 여러 굵직한 변화도 있었습니다.

그럼, 이제 2009년에는 어떤 변화가 있을지에 대해 미리 살펴볼까요?


2009년의 변화

Adobe Flash Platform

사용자 삽입 이미지

Flex를 공부하고 계시는 여러분들께 다소 충격적인 소식(?)이 될 수 있습니다. 바로 Flex가 역사속으로 사라지게 됩니다. 깜짝 놀라셨죠? 사실 플렉스라는 플랫폼은 그대로 유지되고, 브렌딩네임만 플래시 플렛폼으로 통폐합되게 됩니다.

이러한 Flash Platform로의 통합의 일환으로 코드네임 "Thermo"의 브렌딩 네임이 Flash Catalyst로 확정되었습니다.

사용자 삽입 이미지

Flash Platform의 통합 이유는, 플래시로 개발한 애플리케이션이건, 플렉스로 개발한 애플리케이션이건 모두 플래시플레이어라는 런타임 위에서 돌아가는데, 따로 구분하는 것보다 하나의 플랫폼으로 묶어 버릴때의 시너지 효과를 기대하는것 같습니다.

제가 처음 이 소식을 올렸을때에도 많은 논쟁이 있었는데, 해외에서도 이와 관련된 논쟁이 계속 벌어지고 있나봅니다. 어도비플랫폼 에반젤리스트인 라이언스튜어트가 자신의 블로그에 이와 관련되어서 다소 불편한 심기를 들어냈군요.

플렉스 빌더의 중대기로, 그리고 플래시 플랫폼 - 라이언스튜어트


Flex Builder "Gumbo"

위의 다소 충격적인 소식(?)에 이어, 많은 분들께서 기다리고 계시는 플렉스4에 관련된 소식입니다.

사용자 삽입 이미지

Flex Gumbo SDK는 어도비의 오픈소스 정책에 따라 현재 프레임워크와 함께 소스코드또한 공개되어있습니다. Flex Builder Gumbo는 현재 내부 알파테스트가 진행중이며, MAX에 참가했던 분들에게 제공되었다고 하네요.

다만 재미있는것은 플렉스4의 니모닉인데, 새로운 니모닉에서는 플렉스의 약어인 "Fx"를 그대로 사용하고 있습니다. 플렉스 빌더의 브렌딩네이밍은 아마 Flash X~가 되지 않을까요? ㅎㅎ

사용자 삽입 이미지

Flex Builder Gumbo에서는 지난, 버전 2에서 3으로 넘어올때 보다 많은 점들이 변하였습니다. 개발환경이 이전 버전에 비해 정말 많이 변화하였고, 기존의 mx framework도 완전 새롭게 개발되었습니다.
이외의 자세한 사항은 아래의 문서를 참고하세요 : )

Flex Builder Gumbo 살펴보기 1부

Flex Builder Gumbo의 퍼블릭 베타는 2009년 H1으로 예정되어 있으며, 정식 런칭은 내년 후반기로 예정되어있습니다. 퍼블릭베타 사전 신청은 아래의 링크를 통해 신청하실 수 있습니다.

Flex Builder Gumbo 퍼블릭베타 신청하기


Flash Catalyst

사용자 삽입 이미지

우리에겐 "Thermo"로 익숙한 디자이너-개발자간 협업툴이 지난 MAX 2008에서 Flash Catalyst라는 브랜딩 네임으로 확정되었습니다.

사용자 삽입 이미지

지난 2006년 MAX에서 최초로 공개된 Flash Catalyst가 3년여간의 산고를 깨고 드디어 나오게 되는군요. CS4 제품군의 FXG지원으로 Flash Catlayst가 더욱더 탄력을 받은것 같습니다.

사용자 삽입 이미지

Flash Catalyst는 그간 UI,UX개발에서 걸림돌이 되어온 개발자-디자이너간 중계자 모델 형성에 큰 기여를 할것으로 예상됩니다. 비공식 베타에는 아직 닫혀있는 기능들이 많지만, Catalyst, "촉매제"라는 이름 처럼 개발자와 디자이너간 협업도 잘 융해될수 있길 바랍니다.

Flash Catalyst의 퍼블릭 베타는 2009년 H1으로 예정되어있고, 정식 런칭도 내년 후반기로 예정되어 있습니다. 퍼블릭 베타의 사전신청은 아래의 링크를 통해 신청하실 수 있습니다.

Flash Catalyst 퍼블릭베타 신청하기


Flash Player 차기버전

Flash Player 10의 차기버전이라, 허걱 이거 어디서 주워먹은 루머야! 라고 생각하실수 있으시겠지만,
Flash Player 10의 차기버전도,  Flex4, Flash Catalyst 처럼 내년 후반기에 출시될 예정입니다.

사용자 삽입 이미지

다만, 이번 차기버전에서 다소 독특한점은,  Flash Player의 벤더 자체가 변한다는 점인데, 기존 Flash Player는 데스크탑에서만 지원이 되었고, 나머지 스마트 폰이나 모바일 디바이스에서는 Flash Lite Player를 통해 구동이 가능하였습니다.

하지만, Flash Player의 차기버전인 Argo에서는 데스크탑 뿐만 아니라 스마트폰. TV, PMP에서도 단일 런타임에서 구동이 가능하도록 지원됩니다. 즉, 데스크탑에서 돌아가는 플래시 애플리케이션을 플래시 라이트로 새롭게 개발할 필요 없이, 그대로 활용이 가능하게 됩니다.

Flash Lite Player의 차기버전인 Stratos는 비교적 성능이 낮은 모바일디바이스, 폰등에서 구현이 되는것을 목표로 하고 있습니다.

아직 두 플레이어의 자세한 스펙은 비공개 사항이지만, 플래시플레이어가 데스크탑 뿐 아니라, 스마트폰과 같은 포터블 디바이스로 까지 지원될 예정인 점이 상당히 큰 변화라고 보여집니다.


AIR 차기버전

바늘가는데 실 안따라갈수 있냐! 그렇다면 바로 데스크탑 런타임인 AIR는 어떨까요?.
AIR의 차기버전 역시 현재 내년 후반기 출시를 예정에 두고 있습니다.

사용자 삽입 이미지


다만 위에서 설명드린것과는 달리 AIR의 차기버전인 'Athena'는 아직 데스크탑을 기반으로 하고 있습니다. 대신 'AIR Startos'런타임은 모바일 디바이스와 포터블 디바이스 까지 지원될 예정입니다.

다만 'AIR Startos'는 Flash Lite기반이기 때문에, 퍼포먼스의 저하를 우려했는지, 2010년에는 'Zephyr'이 출시될 예정이며, 'Zephyr'부터는 스마트폰, pmp와 같은 디바이스도 지원될 예정입니다.
 


지금까지 2008년에 있었던 변화, 그리고 2009년 Adobe Flash Platform이 맞이하게 될 변화에 대해 정리해보았습니다. 2009년에 있을 굵직굵직한 변화에 대해 벌써부터 두근거리는데요. 과연, 저 변화들 속에 내년엔 또 어떤 재미난 일(=공부=야근)들이 기다리고 있을까요?

그럼 남은 올해도 잘 마무리 하시고, 또 내년에도 즐겁게 달려봐야겠죠!
다가오는 새해에도 모두 좋은일 가득하시길 바랍니다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 7

나랏말싸미 미쿡에달아, 한글은 어디에?

저는 블로그에 글을 쓸때마다 다소 독특한 습관이 있습니다. 바로, 글 본문 이외에 태그(?)에 재 생각을 좀더 솔직하게 담고 있다는 점입니다.

사용자 삽입 이미지

글을 많이 쓰다보니 별별 특이한 태그들이 많이 달려있네요. 그중에서, '나랏말 싸미 미쿡에달아'가 보이시는지요? 바로, 필자가 플렉스에서 한글 입력문제가 생길때 마다 아쉬움을 토로하는 태그중 하나입니다.

우리 한글은 1446년(세종 26년)에 세종대왕에 의해 반포되었습니다. 그 반포문을 '훈민정음 언해문'이라고 하는데요. 고등학교 1학년 수행평가가 훈민정음 언해문을 다 외우는거라서 아직 필자의 기억속에 선하게 남아있네요.

"나랏말싸미 듕귁에 달아 문자와로
서로사맛디 아니할쎄 이런젼차로
어린백성이 니르고져 홇빼이셔도 마참내
제뜨들 시러펴디 못할 노미하니라
내이랄 위하야 어엿비 너겨 새로스물 여듧
짜랄 맹가노니 사람마다 해여 수비니겨 날로
쑤메 뼌한케 하고져 할 따라미니라"


위의 내용은, 나랏말이 중국어이니 문자로 서로 대화를 할수가 없으니, 백성들이 제뜻을 펼치지 못해서 문자를 창재하게 되었다 라는 내용입니다.

처음엔 한글이 "언문(諺文)"으로 속히 불리었지만, 이후 562년이라는 세월을 지나오면서, 대한민국의 공용어로써 자리매김 하고 있습니다. 한글의 과학성을 여러 학회에서 입증받기도 하고, 또 문맹국에는 한글을 가르치고, 세종대왕상을 제정하는등 외국에서도 한글의 입지가 점차 넓어지고 있습니다.

하지만, 플렉스에서는 한글의 입지는 찾아볼수 없을뿐 아니라, 한글조차 제대로 처리되지 않는 문제가 한가지가 아니라 수가지가 존재하고있으며, 현재까지 픽스조차 되고 있지 않습니다.

이 글은, 지금까지 발견된 한글 입력문제들, 앞으로 야기될수 있는 문제들, 그리고 그에 대한 한국 개발자의 노력에 대해 정리해보고자 합니다.



발견된 문제들

지금 현재까지 발견된 문제들입니다.

  1. 한글을 입력할때 영어나 타 국가의 언어를 입력할때 보다 지연되는 현상이 있습니다.
  2. 텍스트블록에서 벗어날때 까지 해당 텍스트가 인식되지 않는 문제가 있습니다.
  3. wmode 프로퍼티가 transparent일때 IE를 제외한 나머지 브라우저에서는 입력이 되지 않는 문제가있습니다.
  4. AIR1.1부터 한글을 삭제할때 자소처리에 문제가 있습니다.
  5. Flex SDK3.2에서 입력컴포넌트에 한글이 한글자 이상 입력되지 않는 문제가 있습니다.
현재 밝혀진 한글 입력문제는 총 5가지가 있으며, 이중에서 어도비에서 공식적으로 픽스된 사례는 없습니다. 이중 3가지는 꼼수(?)를 써서 해결할 수 있지만, 나머지 2가지 방법에 대해선 해결 방법이 없습니다.

사용자 삽입 이미지

한글 입력과 관련된 문제점과 해결방법은 아래의 자료를 살펴보시면 많은 도움이 될것입니다.

현재까지 발견된 한글처리문제 - 희희덕하며 웃어보자



야기될수 있는 문제들

위와 같은 문제들이 발견되었지만, 한국 개발자들의 부단한 노력으로, 몇몇 문제들은 우회적으로나마 해결이 가능합니다. 다만, 아쉽게도, 이런 해결방법이 Flex Gumbo 에서는 다소 어렵게 되었습니다.

사용자 삽입 이미지

Flex Gumbo SDK에서의 가장 큰 변화는 기존의 Component들이 거의 새롭게 만들어 진 점입니다. 그중 입력컴포넌트인 TextInput, TextArea등도 새롭게 개발되었습니다.

사용자 삽입 이미지

이전의 Flex의 입력컴포넌트들은 기존 Flash에서 쓰이던 TextField 기반으로 개발되었습니다. 이후 Flex Gumbo에서는 FxTextBase라고 해서 완전히 새로운 베이스를 기반으로 개발되었습니다.

이 FxTextBase를 살펴보면 기존의 Flash에서 TextField 기반이 아니라, Flash Player 10에서 새롭게 추가된 FTE(Flash Text Engine)를 기반으로 개발된것을 알수 있습니다.

사용자 삽입 이미지

그런데, 위의 문제들에 대한 해결방법은 TextField의 여러 속성들을 이용해서 해결이 되었습니다. 하지만 Flex Gumbo의 새로운 입력컴포넌트들은 Flash Text Engine를 기반으로 하고 있기 때문에, 위의 해결방법은 새로운 입력컴포넌트 내에서는 무용지물이 되게 됩니다.


(위의 입력 컴포넌트는 Flex Gumbo SDK의 Fxtextinput입니다.)

무엇보다 가장 큰 문제는, 근본적으로도 새로 만들어진 입력컴포넌트들에서도 위의 제기된 문제들이 해결되지 않고 있다는 점입니다. 오히려 한글 입력시 지연 문제는 이전 mx framework보다 더 심한 수준입니다.



한국 개발자들의 노력

그렇다고 우리 한국 개발자들이 손을 놓고 있진 않았겠죠. 한국 개발자분들의 부단한 노력에 대해 여러분들께 소개해 드리고자 합니다. 아직 참여하시지 않거나, "아~ 참여해볼까"라고 망설이시고 계신 분들이 있으시다면, 미래의 Flash Platform의 발전을 위해서라도 많은 참여 부탁드리겠습니다.


버그 트래킹에도 호소해보고 → 묵묵부답

필자는 지난번 RIA Camp때 만난, 라이언스튜어트와 마이크 챔버스에게 이런 문제에 대해 공식적으로 여러번 메일을 보낸적이 있었습니다.


영어 실력이 많이 부족해서, 못알아 듣고 있는건가 싶어서 직접 동영상을 찍어서 문제를 보여주고 했는데도 슬프게도 아직 아무런 답변이 없네요.

라이언, 마이크 미워요! ㅜㅜ


어도비에서는 위와같은 SDK의 버그나 기타 버그들을 수집하고 해결하기 위해 이슈트래킹이 마련되어 있습니다. 한국어 문제는 총 두가지 문제가 현재까지 집계되어 있지만, 아직까진 해결이 되지 않고 있군요.


이런 문제에 대해, 머리를 감싸면서 고민하시기 보단, 버그 리포팅에 공식적으로 글을 올리신 스트롱님의 노력이 돋보입니다. 또, 많은 개발자분들의 의견을 덧붙이기 위해서 Vote를!!

Adobe Bug Tracking System은 아래의 경로로 참여하실수 있습니다.
https://bugs.adobe.com/flex/

그리고, 현재까지 한국어와 관련되어 접수된 이슈들입니다. 여러분께서도 투표나 코멘트를 통해 많은 참여 부탁드립니다.

Flex SDK 3.2(FP10)에서 한글 입력이 정상적으로 되지 않는 문제(SDK-18244)
Flex SDK Gumbo에서 한글 입력이 상당히 지연되는 문제(SDK-18395)


직접 해결방법을 찾아나서기도 하고

메일이나, Bug Tracking System을 통해 리포트를 하더라도, 아직까지 어도비에서 답변을 내리거나, 문제를 픽스한 사례는 현재까지는 없습니다. 기본적인 한글 입력시 지연문제는 2버전부터 꾸준히 제기되었는데, 아직까지 수정이 이루어지지 않았습니다.

하지만 그렇다고 해서 손놓고 있을수는 없겠죠?


바로, 한국의 많은 개발자분들께서 원인과 해결방법을 찾고, 블로그나 카페, 어도비 RIA 공식사이트를 통해 꾸준히 공유하고 있습니다. 그 해결방법들에 대한 링크는 아래의 문서를 참고하세요.

Flash Player의 한글입력시 TextField가 버벅이는 현상 해결 - 블루메탈
AIR 한글삭제문제 해결하기 - 희희덕하며 웃어보자
AIR 한글 입력버그에 대한 대안 - 우아꼬의 Adobe RIA
AIR 한글 텍스트 삭제 버그 수정 - 2 - Eirene's Blog


한글화문서를 작성해보기도 하고

플렉스 개발자분들께서 느끼시는 많은 아쉬움중 하나가, 한글처리가 제대로되지 않는 문제이기도 하지만, 바로 한글로 된 레퍼런스의 수가 극히 적다는 점입니다. 현재 플렉스의 LivedocsLanguage Reference는 영어와 일어로만 제공되고 있습니다.


Flex/AIR 한글화 문서 - http://flexdocs.kr/

이러한 레퍼런스의 부재를 줄이기 위해, 지돌스타님을 비롯해 여러분께서 현재 Flex/AIR 한글화문서 작업에 공동으로 참여하고 있습니다.


Flex/AIR 한글화문서는 SVN을 통해 여러 기여자분들께서 번역을 첨삭하는 형식으로 이루어지고 있습니다. Flex/AIR 한글화문서에 참여하시고 싶으신 분들은 지돌스타(jidolstar 골뱅이 gmail 닭 컴)님께 바로 콜!


그리고, 지난번 RIA Camp때 소개된 마이크 챔버스의 toString() 프로젝트에도, 열이아빠님께서 한글화 번역작업에 참여하고 계십니다. 아시아 지역에선 유일한 번역 문서라고 하네요.

toString() 프로젝트에 참여하실 분은 마이크 챔버스(mesh@adobe.com)에게 연락을 주시면 참여가 가능하다고 한데, 워낙 바쁘셔서 메일을 잘 안읽으시나봐요 ㅜㅜ (저도 참여의사를 메일로 보냈는데..)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 2 Comment 12

Flash Builder4 살펴보기 1부

2004년부터 시작해온 플렉스가 내년엔 큰 변화를 맞이하게 되었습니다. 브랜딩네임이 플래시플렛폼으로 묶인다는점, 그리고 Flex Gumbo와 Flash Catalyst가 내년 하반기에 출시됩니다.

사용자 삽입 이미지

Gumbo는 Flex4의 코드네임입니다. Flex가 참 많은 코드네임을 거쳐왔는데, 저는 그중 3버전의 Moxie가 제일 인상에 남는군요.

Flex Gumbo SDK는, Flex SDK의 오픈소스 정책에 따라 현재 공개되어서 직접 사용해 보실수 있습니다. Gumbo의 SDK는 아래의 경로에서 내려받으실수 있습니다.

어도비 오픈소스 - Gumbo

사용자 삽입 이미지

Flex Builder Gumbo는 소소하면서도 많은 변화를 담고 있습니다. 지금부터 그 변화를 2부에 거쳐 살펴보겠습니다. 참 그리고, Flex Builder Gumbo의 퍼블릭 베타는 내년 1분기, 정식 런칭은 내년 후반기로 예정되어 있습니다.



네임스페이스가 없어진다

Flex Gumbo의 가장 큰 변화중 하나인데요. 바로 기존 mx framework가 완전히 새롭게 개발되었고, 또 mx framework의 네임스페이스가 사라지게 되었습니다.

사용자 삽입 이미지

예를들어 <mx:Application>의 경우 네임스페이스가 없어지고 <FxApplication>으로 바뀌었습니다.  물론, 네임스페이스는 FxApplication에서 정의해서 지난버전처럼 사용할 수도 있습니다.


위의 예제는 Flex Gumbo에서 cocomo의 네임스페이스를 정의해 개발한 예 입니다.

그런데 다소 특이한것은, Textinput 컴포넌트의 경우엔 FxTextinput, Textinput와 같이 총 두개의 컴포넌트로 나뉘어져있습니다. 반면에 Label은 Label 밖에 없구요. 혹시 이유를 아시는분? ㅜㅜ 아직 테스트과정이라 그런가요? 그런데 만약 정식런칭시에도 지금 현재 처럼 분류가 된다면 상당히 혼란스러울것 같습니다.


네비게이터뷰에서 익스플로러뷰로의 변화

사용자 삽입 이미지

Flex Gumbo에서 가장 눈에 띄는 변화중 하나가 바로 네비게이터 뷰가 패키지 익스플로러 뷰로 바뀌고, 익스플로러에서 보여지는 프로젝트의 요소들이 변화한 점입니다.

첫번째로는 프로젝트의 소스코드들이 패키지로 묶인다는 점입니다.

사용자 삽입 이미지

이전의 Flex Builder에서는 하나의 액션스크립트나 MXML컴포넌트 패키지를 만드려면, src폴더 하위에 폴더를 만들어서 진행을 했는데, 이젠 그 폴더들이 패키지 형태로 출력이 되게 됩니다.

즉 src 최상위 폴더에 있는 파일들은 default package로 묶이게 되고, 그 아래의 폴더에 있는 파일들은 각 폴더의 이름이 패키지명이 되어 묶이게 됩니다.

이렇게 되면, 헉 'asset' 폴더는 어쩌라고! 라고 생각하실 분들 많으시죠? (저도 젤 첨에 그랬습니다.. ㅎㅎ)
이런변화에 대비하고자, 폰트나 swf, 이미지파일등과 같은 리소스파일들을 위한 assets 폴더도 추가되었습니다.

둘째는, 해당 프로젝트에서 사용중인 Flex SDK를 볼 수 있습니다.

사용자 삽입 이미지

Flex Builder Gumbo의 패키지 익스플로러에서는 해당 프로젝트에서 사용중인 Flex SDK를 볼 수 있고, SDK에 속해있는 패키지들도 볼 수 있습니다.

따라서, 소스코드가 공개되어있는 Flex SDK는 익스플로러 뷰에서 해당 패키지를 바로 열어서 살펴볼 수 있습니다.

셋째는, 해당 프로젝트에서 사용중인 라이브러리를 볼 수 있습니다.

사용자 삽입 이미지

지난 Flex Builder에서는 해당 프로젝트에서 참조중인 라이브러리를 살펴보려면 프로젝트의 Properties에서 살펴봤어야만 했습니다. 하지만 Gumbo에서는 참조중인 라이브러리는 'Referenced Libraries'에서 살펴 볼 수 있으며, 해당 소스코드가 공개되어있다면 바로 살펴볼 수도 있습니다.

그리고 재미있는점을 한가지 소개해드리면,

사용자 삽입 이미지

하나의 파일에서 에러가 나게되면, 그 에러가 영향을 미치는 패키지나 파일들도 줄줄이 사탕으로 에러가 뜨기때문에 한눈에 쉽게 알아볼수 있습니다.



프로젝트 생성시 SDK버전을 지정할 수 있다

위의 익스플로러뷰에서 이미 눈치 채셨나요? ㅎㅎ

사용자 삽입 이미지

이전의 Flex에서는 프로젝트의 SDK 버전을 바꾸기 위해서는, 해당 프로젝트의 Properties에서 변경할 수 있었습니다. 반면, Gumbo에서는 프로젝트 생성시 SDK버전을 지정할 수 있습니다.

이 기능을 활용하면 저처럼 여러 버전의 SDK를 어도비오픈소스에서 내려받아 동시에 사용하시는 분들께서 특히 유용하게 활용하실수 있을것 같습니다.


네트워크 모니터링

Flex로 RPC통신을 하시는 분들의 가장 큰(?) 노가다작업중 하나가 바로 서버와의 통신이 어떻게 이루어지고 있는지 살펴보는 것이라고 해도 과언이 아닐겁니다.

그래서 필자도 RPC통신을 활용할때 Fiddler이라는 HTTP Watcher툴을 유용하게 활용하고 있는데요.

사용자 삽입 이미지

Flex Builder Gumbo의 디버거에서는, 이러한 RPC 통신을 바로 살펴볼 수 있는 Network Monitor이라는 탭이 새로 생겼습니다.

디버그가 진행중일때 Network Monitor에서 모니터링을 시작하게 되면, 그 시점부터 모든 RPC 통신의 통신결과등을 상세하게 알아 볼 수 있습니다.

다만, 아직까지는 디버그를 종료할때, Network Monitor는 수동적으로 종료하여야 합니다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 1 Comment 17

[AS3] RFC822 Date형 사용하기

AS3에는 String, Number, Date등 다양한 데이터형들이 있습니다. 이런 데이터형들을 적절히 사용해서 애플리케이션 개발에 아주 유용하게 활용할 수 있습니다.

데이터형에 관련해서는 아래의 문서를 참고해보시길 바랍니다.
액션스크립트3 최상위 전역함수

AS3의 전역함수중 Date라는 데이터형이 있습니다. 이를 활용해 날짜 및 시간정보를 나타낼수 있습니다.
예를들어, Date형을 이용해 날짜, 요일, 시각등의 정보를 추출할 수 있고, 또 두개의 변수의 데이터형이 Date일경우, 날짜를 비교할수도 있습니다.

그리고, Date형을 생성할때에는, 별도의 파라미터를 넣지않을경우 현재 시각으로 설정되지만, 파라미터를 설정할경우 과거나 미래의 시간으로 설정할 수 있습니다.

public function Date(yearOrTimevalue:Object, month:Number, date:Number = 1, hour:Number = 0, minute:Number = 0, second:Number = 0, millisecond:Number = 0)

Date형은 위와같이 년, 월, 일, 시간, 분, 초, 밀리초로 지정할 수 있습니다.

저는 최근 RSS리더기 애플리케이션을 만들면서, Date형의 처리에 관련해서 고민이 생겼습니다.
이 RSS리더기 애플리케이션의 경우 여러 블로그의 RSS를 수집해와서, 글이 작성된 시간 순으로 정렬을 해야했습니다.

하지만, RSS2.0의 스펙에 의하면, pubDate와 같은 날짜/시각정보들은 반드시 RFC 822라는 표준으로 정해져있습니다.

이 RFC 822로 작성된 날짜/시각정보는 아래와 같이 나오게 됩니다.
Fri, 05 Dec 2008 14:16:10 +0900

여기서 필자가 하게 된 고민은

1. Date형으로 시각을 설정할려면 파라미터에는 반드시 Number형으로 설정해야 한다.
2. 요일뒤에 붙는 저 콤마는 또 뭐냐 -_-;;
3. 시차정보나 이런건.. (GMT)


그래서
"RFC 822 형을 AS3에서 사용할려면 별도의 클래스를 만들어야 한다"
로 결론이 내려졌습니다.

제일 처음엔 이러한 RFC 822형을 AS3의 Date형으로 처리하기 위한 클래스를 개발하고 있었는데, 이와 관련된 클래스를 이미 어도비에서 개발해서 배포를 하고 있었습니다.

바로 AS3Corelib라는 라이브러리인데요.
AS3Corelib는 어도비에서 자체적으로 개발해 배포한 라이브러리로 MD5해시를 암호/복호화하거나, JSON 데이터를 처리하거나, 이미지 인코더등 상당히 유용한 클래스들이 다수 포함되어 있습니다.

AS3Corelib는 아래의 사이트에서 내려받을 수 있습니다.
http://code.google.com/p/as3corelib/

그럼 본론으로 돌아와서 RFC822형을 Date형으로 처리할려면
바로 Dateutil이라는 클래스를 활용하면 됩니다.

이 Dateutil이라는 클래스속에는 parseRFC822와 toRFC822라는 메서드가 있는데 두 메서드를 이용해 Date↔RFC822형으로 변환을 할 수 있습니다.



위는 Dateutil 클래스를 활용해 RFC822형을 Date형으로, 그리고 그 Date형을 다시 RFC822형으로 바꾸는 예시입니다.
이젠 별도의 노가다 없이 이 Dateutil만 활용하면 얼마든지 쉽게 Date형을 바꿀수 있겠죠?

위의 Dateuti은 특히 여러개의 rss의 정보를 받아오는 매쉬업애플리케이션을 개발할때도 상당히 유용하게 활용할 수 있습니다.
이외에 Dateutil의 클래스에는 W3C Date-time형을 Date형으로 바꾸어주는 메서드도 있습니다.(parseW3CDTF, toW3CDTF)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 6

Flex 3.2 릴리즈

어제, 플렉스가 사라진다는 다소 심란한 글을 올렸었는데, 오늘 코코모(CoCoMo) 공개에 이어, Flex 3.2(빌더 3.0.2)가 릴리즈되었습니다.

Flex SDK 홈페이지의 Last Mileston의 Stable Version 업데이트 일자가 지난달 28일이었는데, 이젠 공식적으로 릴리즈가 되었군요.


사용자 삽입 이미지

SDK는 3.2 버전으로 정식적으로 릴리즈 되었으며, 빌더는 이에 맞춰 3.0.2 버전으로 업데이트 되었습니다. 어도비 홈페이지에서 SDK Download를 선택하시면 3.2 버전을 내려받으실수 있습니다

사용자 삽입 이미지

하지만, 아직 어도비 본사 및 각 지사 홈페이지에선 Flex 빌더 다운로드 페이지의 버전은 그대로 3.0.1으로 표시되어있습니다. 그런데 재밌는건, POE버전을 내려받을땐 3.0.2로 표시되는것 보니, 아마 곧 홈페이지에도 업데이트가 되겠죠. ^^

플렉스 빌더 내부에서 업데이트를 하시면 Flex Builder 3.0.2 버전이 업데이트 목록에 나옵니다.

Flex 3.2에서의 큰 변화사항은 다음과 같습니다.

  1. Flash Player 10을 공식적으로 지원합니다.
  2. AIR 1.5를 지원합니다.
하지만 아쉽게도 Textinput, TextArea RichTextEdtor 컴포넌트를 사용해 한국어를 입력하는 경우 한글이 약간 지연되어서 입력되는 문제가 있었는데, 그 문제가 이번 Flex 3.2에서도 해결되지 않았습니다.

또 AIR1.1부터 제기되어온, 한국어 삭제시 자음 처리 문제도, 아직 처리되지 않아서 많이 아쉽습니다.

Flex 3.2로 업데이트 하시는 방법은 아래와 같습니다
  1. 플렉스 빌더인경우 : Help - Search for Flex Builder Updates
  2. 이클립스에서 플렉스 빌더 플러그인을 설치해서 사용하시는경우 - Flex SDK를 내려받아 업데이트
Flex 3.2 SDK 다운로드
Flex Builder 3.0.2 다운로드(업데이트전용)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 2 Comment 2

Flex, 역사속으로 사라지다

미국에서 어도비 MAX를 관람중이신 열이아빠님으로 부터 다소 충격스러운 비보를 전해듣게 되었습니다. 그 소식의 전위는 MM의 Royal에서 부터 시작한 Flex가 3버전을 기점으로 영영 역사속에서 사라지게 됩니다.

이 사실은 지난번 RIA Camp 2nd때 내한한 글로벌애반젤리스트 라이언의 블로그에도 자세히 설명되어있습니다.

다시 돌아온 플래시플랫폼 그리고 반가워요 Flash Catalyst - 어도비 글로벌 애반젤리스트 라이언스튜어트
어도비, Flex를 플래시 플랫폼으로 환원하다
Adobe Flash Platform

사용자 삽입 이미지

라이언 스튜어트의 글에 의하면, 그간 Flash, Flex등으로 흩어진 RIA 개발툴을 하나의 Flash플랫폼으로 통합하며, 추후 빌더나, Flex관련 제품군에 브랜딩네임으로 사용하지 않고, Thermo라는 코드네임으로 불리어졌던 툴은 Flash Catalyst라는 새로운 브랜드네임으로 출시되게됩니다.

아직 Flex와 Flash가 하나의 플랫폼으로 묶이는 시기와 그 브랜드명에 대해선 알려지지 않았지만, 내년 후반기에 Flex Gumbo가 출시되는 만큼, 이 시기에 현재 밝힌 Flash Platfom이나, 새로은 브랜드네임으로 묶일 가능성이 큽니다.

하지만 Flex가 RIA시장에서 활약한지 약 4년여가 되어가는 시점이고(내년 출시는 5년차), 또 많은 개발사에서 Flex를 도입하고있는 만큼, 브랜드네임 통폐합으로 인한 진통은 불가피할것으로 보입니다.

또, 현재의 Flex는 MXML과 AS로, Flash는 모션과, AS로 이루어진 개발툴인 만큼, 이 둘 개발툴을 통폐합 하지는 않겟지만, 브랜드네임을 통일하는 과정에서 오는 혼란도 막대할것으로 보입니다.

사용자 삽입 이미지
아쉽게도 곧, Flex라는 RIA 플랫폼은 어도비에 의해 역사속에서 사라지게 됩니다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 1 Comment 27

[FLEX/AIR] 현재까지 발견된 한글처리 문제

어도비 플렉스가 국내 시장에 활발히 도입된지도 근 3년이 되어가고 있습니다. 지금 이시간에도 많은곳에서 플렉스를 도입하여 프로젝트를 진행하고 있습니다.

매크로미디어(현 어도비)에서 RIA 즉, '똑똑한 인터넷'이라고 제안한지도 약 5년이 되어갑니다. 그동안 정말 많은 변화를 겪었습니다. 또 올해엔 Flash Player 10(astro)가 출시를 예고 하고 있고, 내년엔 Flex 4도 정식으로 출시될 예정입니다.

하지만, 한국에선 아쉽게도 '똑똑한 인터넷'이 제 힘을 발휘하고 있지 못합니다. 한글조차 제대로 처리하지 못하고 있기 때문입니다. 한글을 사용하고 또 사랑하는 한국인으로써 제일 화가 나고 짜증나는 부분이기도 합니다. 많은 개발자들이 Flex 2부터 어도비에 수정을 요구했던 부분이지만 아직까지도 수정이 되고 있지 않습니다.

어도비에 빠른 수정을 바라면서, 현재까지 발견된 문제점과 해결법에 대해서 다루어 보고자 합니다.

우선 지금까지, 약 4가지의 문제가 알려져있습니다.

  1. 한글을 입력할때 영어나 숫자를 입력할때 보다 지연되는 현상이 있습니다.
  2. 텍스트 블록을 벗어날때 까지 해당 텍스트가 인식되지 않는 문제가 있습니다.
  3. wmode가 transparent일때 IE를 제외한 브라우저에서 한글이 입력되지 않는 현상이 있습니다. (FP-479)
  4. AIR 1.1에서 한글을 삭제할때, 자소 처리에 문제가 있습니다.

1번문제

플렉스에는 Textinput, TextArea, 또 전혀 Rich하지 않은 RichTextEditor컴포넌트를 통해 텍스트를 입력할 수 있습니다. 하지만, 이들 컴포넌트에는 한글 입력시, 영문이나 숫자보다 한글이 다소 지연되어서 입력되는 문제가 있습니다.

이런 문제가 플렉스 챔피언이신 신호승님에 의해 의외로 간단히(?) 해결되었는데, TextField의 alwaysShowSelection 프로퍼티의 값을 true로 바꿔주게 되면, 한글 입력 지연현상이 말끔히 사라집니다.

TextField의 alwaysShowSelection 프로퍼티를 true로 설정하게 되면 텍스트필드에 포커스가 없는경우, 선택영역이 회색으로 강조표시가 됩니다. 어째서 이렇게 해결이 되는지 저도 많이 궁금하네요.. ㅋㅋ

TextInput, TextArea, RichTextEditor의 TextField에는 바로 접근할수 없기 때문에, 별도로 mxml 컴포넌트나 as컴포넌트를 만들어서 해결해야 합니다.
 


하지만 위의 해결 방법은 문제점이 있습니다. 근본적으로 AlwaysShowSelection이 TextField의 강조표시와 관련된 프로퍼티이기 때문에, 여러개의 입력 컴포넌트를 사용하게 될경우 각 입력컴포넌트에 텍스트블록 잔상이 남게 됩니다.

무엇보다 이런 문제가 Flex 2 부터 제기되어온 문제인 만큼, Flex 3.2, Flex 4(Gumbo)에서는 꼭 해결될수 있길 바랍니다.
 

2번문제

이 문제는 앞서 설명드린 Flex의 입력컴포넌트 Textinput, Textarea, Richtexteditor에서 발생하는 문제입니다.
이들 입력컴포넌트에는 text 프로퍼티로, 해당 입력컴포넌트에 입력된 plain text를 받아올 수 있습니다.

하지만, 2byte 문자열을 입력하게 될경우 해당 문자가 텍스트블록에서 벗어나거나, 입력컴포넌트가 포커스 아웃 될때까지 text 프로퍼티에 정상적으로 인식되지 않는 문제가 있습니다.



예를들어 가방이라는 문자열을 입력할경우, "ㄱ", "가", "갑"의 경우 아직 텍스트블록에서 벗어나지 않았기 때문에 입력컴포넌트의 text프로퍼티의 값은 공백으로 인식됩니다.

물론 이들 입력컴포넌트는 다른 UIComponent를 클릭할때 포커스아웃이 되기 때문에, 버튼을 눌러서 정보를 보낼때에는 문제가 없지만, 입력컴포넌트의 입력값의 변화를 비 동기적으로 서버와 주고받아야 할 경우 문제가 발생하게 됩니다.
(예를들어, 구글의 검색어 제안이나, 우편번호 검색 등등..)

이 문제의 경우 TextField의 text 프로퍼티를 불러오게 될경우 정상적으로 해결 됩니다.
TextField는 각 입력컴포넌트에서 직접 사용할수 없기 때문에 mxml 컴포넌트나 as 컴포넌트를 만들어서 불러와야 합니다.




위의 예는 두개의 입력 컴포넌트에 keyup 이벤트를 걸어둔 예시입니다.

두 입력컴포넌트 모두, 한글자씩 입력할때 마다, 정상적으로 keyup 이벤트가 발생하지만, 첫번째 입력컴포넌트의 경우 text프로퍼티로 불러와서 해당 텍스트블록을 벗어날때까지 텍스트가 인식되지 않지만, 두번째 입력컴포넌트의 경우 위에서 정의해둔 ktext 프로퍼티로 textfield의 text를 불러오기 때문에 텍스트블록을 벗어나지 않더라도 한글자씩 정상적으로 인식이 됩니다.


3번문제

Flash Player의 embed, object에 넣을수 있는 프로퍼티중 wmode라는 프로퍼티가 있습니다. wmode는 삽입될 Flash의 투명정도, 계층정도, 배치정보등을 설정할 수 있습니다.

그중 transparent 설정이 있는데, flash 배경을 투명으로 설정해두면 뒤의 HTML 배경이 해당 flash에 빚추어서 보이게됩니다.

하지만 wmode 프로퍼티가 아직 완벽히 브라우저, 플랫폼을 지원하지 않기 때문에, 일부브라우저에서는 제대로 지원되고 있지 않습니다. wmode 프로퍼티의 transparent 설정과 관련된 문제는 Flex Bug and Issue Management System의 단골 과제가 되어버렸습니다.

특히 wmode프로퍼티에 transparent를 지정하게 될경우 인터넷익스플로러(IE)외의 브라우저에서는 2byte의 문자열이 정상적으로 입력되지 않는 문제가 있습니다.

이 문제를 해결할만한 꼼수는 아쉽게도 아직 없습니다. IE이외의 브라우저에서 한글 입력이 반드시 필요하시다면, wmode 프로퍼티에 transparent를 지정하는것을 피하시는게 좋겠습니다.

이 문제와 관련된 꾸준한 버그 리포팅이 올라와서, Flash Player 10에는 수정될것으로 기대 되었습니다만, 지금 현재까지 출시된 Flash Player 10 Beta에선 수정되고 있진 않습니다.


4번문제

이 문제는 아주 최근(2008년 6월 16일)에 AIR1.1이 릴리즈 되면서 발견된 문제입니다.
AIR1.1의 입력컴포넌트중 Textinput, TextArea, RichTextEditor에서 한글을 삭제할때 마지막 글자의 자음이 남게됩니다.


Flex에선 텍스트블록이 검정색으로 표시되고 backspace(←)로 삭제하게 될경우 모두 제거가 되지만,


AIR1.1에서는 텍스트 블록이 노란색으로 표시되어 있고, 또 프롬프트도 입력된 글자 이전에 위치해 있습니다.
이상태에서 해당 글자를 backspace(←)로 삭제하게 되면, 제일 마지막 글자의 자음이 남게 됩니다.

이 문제에 있어서 아직 마땅한 해결 방법은 없습니다.
또, 아이러니 하게도 바로 전 버전의 런타임인 AIR1.0에서는 이런 문제가 없습니다.

이 문제가 AIR1.1 릴리즈 이전에 제대로된 로컬라이징 테스트 부족으로 발생한 문제이기 때문에, 곧 릴리즈 되는 AIR 1.5에서는 반드시 고쳐지길 바랍니다.



우리나라는 타 국가에 비해 많은 분야에서 Flex/AIR를 통한 프로젝트가 활성화가 되어있습니다.
하지만, 아직 몇몇부분에서 한국어 조차 제대로 처리하지 못하고 있는 사실이 아쉽습니다.

곧 릴리즈 되는 Flex 3.2, Flex4에서는 반드시 이런 문제가 해결될수 있길 바랍니다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 15
prev 1 2 next


티스토리 툴바