태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

'Flex'에 해당되는 글 5건

  1. 2009.02.09 여러분의 참여로 한글 문제를 함께 해결해 봅시다! (3)
  2. 2008.12.10 Flash Builder4 살펴보기 1부 (17)
  3. 2008.12.06 [AS3] RFC822 Date형 사용하기 (6)
  4. 2008.10.17 Flash Player10 보안샌드박스 변경에 따른 이슈 해결방법
  5. 2008.10.11 [FLEX/AIR] 현재까지 발견된 한글처리 문제 (15)

여러분의 참여로 한글 문제를 함께 해결해 봅시다!

안녕하세요 : )
플래시플랫폼한글문제공동대응팀 입니다.

얼마전 저희 팀은 킥오프 모임을 통해, 팀원과의 화합을 도모하였는데요.

저희팀은, 플래시플랫폼의 한글문제에 대해 트래킹과 참여를 요구하고, 또 이후 수정사항이 제대로 반영되었는지 파악하는 시민 감시단 역할과 함께, 플래시플랫폼으로 개발된 한국의 서비스를 해외에 알리는 일을 진행해 나갈 예정입니다.

그간, 저의 블로그와, 팀원분들의 블로그를 통해 한글 이슈에 대해 많이 알려드렸는데요.

오늘은, 그간 발견된 한글문제와, 여러분들께서 해당 한글 문제를 간단한 참여를 통해 크게 기여할 수 있는 방법에 대해 알려드리겠습니다.


지금까지 발견된 한글 문제는 어떤것들이 있나요?

지금 현재, 플래시플랫폼의 한글 이슈는 한글처리시 상당히 중요한 영향을 끼치는 5가지(2bytes를 사용하는 모든 환경에서 발생하는 문제 1가지)문제가 있고, 이외에 처리엔 큰 문제는 없지만 사용자에게 다소 불편을 끼치는 여러 소소한 문제들이 있습니다.

이러한 한글관련 이슈는 새로운 플래시플레이어가 출시되거나, Flex SDK가 업데이트 될때 마다 예전엔 없던 이슈들이 오히려 새롭게 증가하고 있는 추세입니다.

아래는 해당 이슈들을 정리한 내용입니다.

 구분

 현재상태

 문제점

 투표

 Flex

 이 문제는 다음 플래시플레이어에서 수정될 예정입니다.

Flex SDK3.2 이상에서, Flash Player 10으로 애플리케이션을 Export 하면, 한글입력이 정상적으로 되지않는 문제가 있습니다.
발생빈도 : 매번
해결방법 : 없음
최초발생시기 : 2008/11/18 ~

SDK-18244

 Flex

계류중입니다.

Flex SDK3.2 이하에서, 입력컴포넌트(Textinput, Textarea, RichTextEditor)을 이용해 한글을 입력시 지연되는 문제가 있습니다.
발생빈도 : 매번
해결방법 : textField의 alwaysSelection 프로퍼티를 true로 설정한다.(참조)
최초발생시기 : 4년여전

SDK-19182

 Flex

이 문제는 다음 SDK에서 수정될 예정입니다.

Flex SDK Gumbo에서 입력컴포넌트를 이용해 한글을 입력시 상당히 지연되는 문제가 있습니다.
발생빈도 : 매번
해결방법 : 없음
최초발생시기 : 2008년 중순경~

SDK-18395

 AIR

계류중입니다.

AIR 1.1이상에서 입력컴포넌트(TextField, Textinput, TextArea, RichTextEditor)을 이용해 한글을 입력하고 삭제시 자음이 남는 문제가 있습니다.
발생빈도 : 매번
해결방법 : 키보드 이벤트에서 backspace를 누를때마다, textfield의 포커스를 한글자 이동한다. (참조)
최초발생시기 : 2008년 6월~

SDK-19158

 AIR

계류중입니다.

Flex SDK Gumbo에서 FxTextBase를 통해 개발된 새로운 입력컴포넌트를 사용할 경우 한글 입력이 아예 안되는 문제가 있습니다.
발생빈도 : 매번
해결방법 : 없음
최초발생시기 : 2008년 중순경~

SDK-19159 

위의 이슈들은 주로 한글 입력이나 삭제와 같은 한글 처리시 발생하는 문제로, 발생빈도가 매번 발생한다는 점에서 상당히 심각한 문제들 입니다. 또, 해당 이슈를 우회적으로 해결할 수 있는 방법도 아직 많지 않습니다.

위에서 제기된 문제들은 아직 공식적으로는 해결되지 않았습니다. 특히, 플렉스의 한글 입력컴포넌트의 입력지연 문제는 오래전부터 제기되어 왔지만, 아직 해결되고 있지 않는점은 많이 아쉽습니다.

추가적으로 한글 문제에 대해 살펴보려면 아래의 링크를 참고하세요.

[Flex/AIR] 현재까지 발견된 한글 문제
AIR 한글 삭제문제 해결하기
나랏말싸미, 미쿡에달아 한글은 어디에?
플렉스, 한글문제 어떻게 되어가고 있을까?

저희 플래시플랫폼 한글문제 공동대응팀은, 한국어도비, 어도비본사, 어도비이슈트래킹시스템을 통해 이러한 한글 문제에 대해 꾸준히 리포팅할 계획입니다.

 

어도비 이슈트래킹 시스템이 뭔가요?

어도비의 이슈트래킹 시스템은, 어도비 플래시플랫폼 제품군(BlazeDS, Flash Player, Flex, AS3..)들의 이슈를 어도비에서 직접 관리하는 시스템 입니다.

사용자 삽입 이미지

어도비 이슈트래킹 시스템은, 어도비의 QA당당자, SDK개발자 등이 참여해서 이슈를 처리하는 시스템으로, 어도비 직원뿐만 아니라 일반 개발자들에게도 개방되어 있습니다. 따라서, 여러분들께서도 이 시스템을 통해 여러 문제들을 직접 리포트 할 수 있고, 처리경과등도 QA담당자나 개발자에게 받아볼 수 있는데요.

실제로, 이슈트래킹 시스템에는 플래시 플랫폼의 여러 버그들을 파악할 수 있고, 이 버그들을 우회할 수 있는 방법들에 대해 많이 공유되어있어서 플래시 애플리케이션을 개발할 때 요긴하게 활용 할 수 있습니다.

다만, 어도비 이슈트래킹 시스템은 로컬라이즈화 되어있지 않고, 전세계적으로 동일한 시스템을 사용하기 때문에, 이슈를 리포팅할때에는 반드시 영어로 작성하여야 합니다.

이러한 어도비 이슈트래킹 시스템에서 버그나 이슈를 리포팅하는것도 중요하지만, 해당 이슈에 대해 투표하는것도 상당히 중요한 영향력을 행사합니다.

 

투표가 왜 중요하나요?

앞서 살펴본것 처럼 어도비는 Flex, AIR, Flash, BlazeDS등과 같은 플래시플랫폼의 이슈들은 이슈트래킹시스템을 통해서 처리되고 있는데, 어도비에서는 JIRA 라는 트래킹 시스템을 채택해 모든 이슈들을 관리하고 있습니다.

하지만, 어도비의 이슈트래킹 시스템은 기존 JIRA와 달리 다소 독특한점이 있는데요.

바로, 투표수가 일정횟수 이상이어야, QA담당자에게 문제가 노출되게 됩니다.

사용자 삽입 이미지

어도비의 이슈트래킹 시스템은, 이슈를 리포팅 한 후에, 해당 이슈에 대한 최초 상태는 Community 입니다. Community 상태일 경우, 어도비의 QA담당자에게 해당 이슈들이 노출되지 않으며, 정식적으로 검토하지 않게 됩니다.

투표수가 2표 이상이 될경우, Community 상태에서 New 상태로 전환하게 되는데, 이때부터 본격적으로 SDK 담당자가 해당 이슈에 대한 검토를 시작하게 됩니다.

QA 담당자의 내부 검토를 거쳐, 해당 이슈의 존재 여부와 함께, 각 부서별 개발자에게 이슈가 배정되게 되는데, 이때에도 투표수에 따라 우선 처리순위가 결정되기 때문에, 투표수가 상당히 중요한 영향을 미치게됩니다.

(물론, 투표수가 높다고 해서 어도비에서는 일정,인력등을 고려하기때문에, 반드시 고쳐지는 것은 아니겠지만, 투표수고 높을수록 해당 이슈에 대한 관심정도를 확실히 피력할 수 있습니다.)

사용자 삽입 이미지

이렇게, 투표의 중요성이 부각되면서 외국의 몇몇 블로거들은 자신이 발견한 이슈를 알리고, 방문자에게 참여를 요구하는 글도 많이 발행되고 있습니다.

실제로, 이러한 이슈에 대해 여러 개발자들에게 많은 공감을 받으면서 투표수가 100이 넘어가는것도 적지 않네요.. ^^

사용자 삽입 이미지사용자 삽입 이미지

(그리고 이러한 재미있는 포스터까지 ^^)

 

투표에 참여하면서 얻는 혜택이 있나요?

그럼 이슈에 대한 투표에 참여하면서 얻는 혜택에는 어떤것들이 있을까요?

  1. 참여만으로도, 해당 이슈에 대해 기여할 수 있습니다.
  2. 해당 이슈의 상태가 변경될 때 마다, 이메일로 경과를 알리게 됩니다.
  3. 해당 이슈에 대한 의견을 추가적으로 등록할 수 있습니다.

우선, 투표에 참여하는것 만으로도 어도비가 해당 이슈에 대한 상태나, 중요도를 변경 시킬 수 있기 때문에 해당 문제에 대해 제일 크게 기여할 수 있습니다.

그리고, 해당 이슈의 상태가 변경될때 마다(QA담당자가 리뷰하거나, 문제가 해결되거나) 이메일로 경과를 알려주게 되어, 계속해서 메일로도 이슈의 변화상태를 파악할 수 있습니다. 또, 해당 이슈에 대해 추가적으로 의견을 등록할 수 있습니다.


투표에 참여하는 방법을 알려주세요.

투표에 참여하려면 우선, 어도비 버그트래킹 시스템에 계정이 있어야 합니다.

어도비 버그트래킹 사이트는, JIRA 트래킹시스템을 사용하기 때문에, 어도비에서 사용하는 계정과 달리, 이슈트래킹용 계정을 따로 등록하여야 합니다.

이슈트래킹 시스템의 주소는 http://bugs.adobe.com 입니다.

메인페이지에는, Flex, 플래시 플레이어, BlazeDS등과 같이 어도비 플래시플랫폼 제품군으로 따로 분류해두었지만, 하나의 이슈트래킹 계정으로 리포팅이나, 투표를 할 수 있습니다.

그럼, 이슈트래킹 계정을 등록해 보겠습니다.

이슈트래킹 계정은 https://bugs.adobe.com/jira/secure/Signup!default.jspa?header=FB 에서 등록하실 수 있습니다.

사용자 삽입 이미지

이슈트래킹 시스템의 회원등록 화면에서, 사용자 ID, 사용자 암호, 이름, 이메일과 같은 정보들을 입력하고, 마지막으로 아래에 있는 자동가입방지 문자열을 입력한후, Sing up(가입)버튼을 누릅니다.

사용자 삽입 이미지

Sing up(가입)버튼을 통해 가입 절차를 모두 마치게되면, 마지막으로 이메일로 가입확인을 하게 됩니다.

사용자 삽입 이미지

가입시 기재한 이메일로, 이슈트래킹 가입 정보가 발송됩니다.

사용자 삽입 이미지

가입정보 확인메일에는, 입력한 이메일주소와 암호등의 정보와 함께, 회원 가입을 완료하기 위한 확인 링크가 포함되어 있습니다. 확인 링크를 클릭하면,

사용자 삽입 이미지

이렇게, 계정이 활성화되게 됩니다. OK 버튼을 누르면, 이슈트래킹 시스템의 제일 첫번째 화면으로 돌아가게 됩니다.

계정 등록을 마치고, 활성화가 되면, 이제 이슈를 리포트하거나, 투표에 참여할 수 있습니다.

이어서, 투표에 참여하는 방법에 대해 알아볼까요?
투표는 해당 이슈의 상세화면에서 참여할 수 있는데요.

사용자 삽입 이미지

이슈의 왼쪽 하단을 보면, Opreations 탭이 있습니다.
이 Opreations 탭에서 해당 이슈에 대한 파일을 추가하거나, 의견을 개진하는등의 작업을 할 수 있는데요.

그중 Voting 항목이 있는데요. Voting 항목 아래에 vote for it라는 링크가 있는데, 이 링크를 클릭하게 되면,

사용자 삽입 이미지

투표수가 올라가게 됩니다.

투표는 1회에 한해서 할 수 있으며, 투표가 된 이후에는 해당 이슈에 대한 기여자로써, 이슈의 변경사항에 대해 계속해서 메일로 알려드리게 됩니다.

사용자 삽입 이미지

어때요, 가입하고 투표하는방법! 모두 영어로 되어있지만 참쉽죠?

아래는 지금까지 발견된 한글 처리와 관련된 이슈들입니다.

Flash Player 10 + Flex SDK 3.2에서 한글이 한글자 이상 입력되지 않는 문제https://bugs.adobe.com/jira/browse/SDK-18244

Flex Gumbo에서 입력컴포넌트에 한글 입력이 상당히 지연되는 문제https://bugs.adobe.com/jira/browse/SDK-18395

Flex SDK 3.2 이하에서 Textinput 컴포넌트에 한글을 입력이 지연되는 문제http://bugs.adobe.com/jira/browse/SDK-19182

AIR1.1 이상에서 입력컴포넌트에 한글 삭제시 자음이 남는 문제https://bugs.adobe.com/jira/browse/SDK-19158

Flex Gumbo에서 AIR 애플리케이션을 개발할때 한글 입력컴포넌트에 한글 입력이 아예 안되는 문제
https://bugs.adobe.com/jira/browse/SDK-19159

이글을 보시면서 함께, 회원가입도 해보시고, 투표도 참여하시면서, 한글 문제를 함께 해결해 나가는건 어떨까요?
(덧붙여, 투표에 참여하시고, '투표했어요~' 라고 댓글로 남겨주시는 센스까징~~!)

 

지금까지 플래시플랫폼의 한글 이슈와, 버그 트래킹시스템에 대해서 알려드렸습니다.

이 문서를 만들면서 저도 다시한번 회원가입에서 투표까지 직접 해보게 되었는데, 재미있는건 이 절차를 모두 완료하는데 까지의 시간은 3분여 밖에 걸리지 않더군요.

3분이면, 컵라면을 익히거나, 커피한잔정도 마실수 있는 어찌보면 짧고, 또 어떻게 보면 긴 시간이 될수도 있겠네요.

하지만, 3분이라는 시간을 투자해서 플래시플랫폼의 한글 문제를 여러분의 손으로 직접 바꾸어나갈수 있다면? 캬아~ 정말 멋진일 아닌가요?

그럼, 여러분들의 많은 참여를 부탁드리겠습니다 (__)

이외에 발견된 한글 문제가 있으시다면, 어도비이슈트래킹시스템에 추가하거나, 플래시플랫폼한글문제공동대응팀(lhd1413 [앳뜨] naver 닭 com)을 통해 알려주세요~

플래시플랫폼 한글문제 공동대응팀
검쉰/블루메탈/데스티/에이레네/열이아빠/지돌스타/희희덕
(+ 이글은 어떤 경로라도 마음껏 배포하셔도 좋습니다.)

신고
트랙백 1 Comment 3

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는 수동적으로 종료하여야 합니다.
신고
트랙백 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)
신고
트랙백 0 Comment 6

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

Flash Player10은 15일 비교적 조용한 분위기에서 정식 런칭되었습니다. Flash Player가 없는 클라이언트들이 Flash Player을 설치하게 되면, 가장 최신버전인 10을 설치하게 됩니다. 또, 어도비의 본사 및 각지역 지사의 Flash Player 설치버전도 10으로 높여졌습니다.

그런데, Flash Player10에서는 총 8가지의 보안샌드박스 변경/추가가 발생하였고, 이들 변경에 대한 파급력도 큽니다. 하지만, 이런 Flash Player10의 보안샌드박스 변경사항에 대해 Flash/Flex 제품군을 쓰는 고객에 사전 안내가 없었고, 또 출시된 이후에도 변경사항에 대한 공지 및 해결방법에 대한 한국어 문서 또한 아직 내놓고 있지 않은 실정입니다.

그래서 이 문서는, 현재 많은 웹사이트에서 사용하고 있는 개발방법이 Flash Player 샌드박스 변경으로 작동하지 않는 원인과 해결방법에 대해 다루어보고자 합니다.

먼저, Flash Player10의 보안샌드박스 변경사항은 아래의 문서에서 살펴보시길 바랍니다.
문서보기

아울러, 어도비에서도 이런 보안샌드박스 변경 및 해결방법에 대해 빠른시일 내로 해당 제품군들을 사용하는 고객사들에게 안내해주었으면 하는 바람입니다.



사례1. 업로더 시스템에서 UI는 HTML로 구현되어있고, 업로더는 Flash로 만들어진경우

문제
현재 많은 웹사이트에서, 업로더 시스템을 구현할때 Flash는 1x1으로 숨겨놓고, 파일 선택, 업로드부분은 자바스크립트로 Flash의 함수를 호출해 실행하고, UI는 HTML로 구현하는 방법을 사용하고 있습니다.

이 방법을 이용해 얻을수 있는 장점은, Flash를 모르는 개발자 혹은 코더라도, Flash의 구속 없이 업로더의 UI를 자유 자재로 꾸밀수 있다는 장점이 있습니다.

또, 다중 파일을 쉽게 업로드 할 수 있다는 장점도 있습니다.

하지만, 이 방법은 Flash Player10 출시 이후로, 정상적으로 작동하지 않으며, 위와 같은 보안샌드박스 경고가 발생하게 됩니다.


원인

Flash Player10의 Filerefrence API의 보안샌드박스가 변경 되었습니다.
파일선택과 다운로드시 사용자의 직접적인 인터렉션을 필요로 합니다.
Filerefrence.browse를 통해 사용자의 로컬의 파일을 찾는 창을 띄울수 있고, Filerefrence.download를 통해 파일을 내려 받을수 있습니다.
두 메서드의 경우 종전엔 사용자의 UI 인터렉션을 필요로 하지 않았습니다만, Flash 10에서는 사용자가 직접 UI인터렉션을 취해야 작동하게 됩니다.
Filerefrence의 browse와 download 메서드를 실행할때에는 사용자가 Flash 상에서 직접 UI인터랙션을 취해 줘야 작동하게 됩니다.

따라서, 위의 방법은 UI를 HTML로 구현되어있고, 사용자의 인터랙션이 Flash 상이 아닌곳에서 browse, download 메서드를 호출하였기 때문에, 보안샌드박스 에러가 발생하게 됩니다.


해결방법
해결방법은 간단하게도, 기존 1x1 플래시 파일에서, 파일을 선택하거나 다운로드 하는 버튼은 HTML로 구현하지 않고, Flash로 구현해 주면 해결됩니다. 다만 업로드 버튼은 이번 보안샌드박스 변경사항에 반영되지 않았기 때문에, 기존처럼 HTML로 구현해서 사용하실수 있습니다.



사례2. 클립보드 지정에서 UI는 HTML로 구현되어있고, 클립보드를 지정하는 부분은 Flash로 만들어진 경우

문제
위의 사례1처럼 UI는 HTML로 구현되어 있고, 클립보드를 지정하는 부분은 1x1 플래시로 구현되어, 클립보드를 지정할때 JS로 플래시의 함수를 호출하는 방법은 현재 많은 웹2.0 사이트 혹은, 위젯 관련 사이트에서 클립보드를 지정할때 사용하고 있습니다.

이방법을 이용해서 얻을 수 잇는 장점은, 위처럼 Flash를 모르는 개발자나 코더도 UI를 HTML로 손쉽게 꾸밀수 있습니다. 그중 제일 강력한 장점은, JS로 클립보드를 지정하는것에 비해 거의 모든 크로싱플렛폼을 완벽히 지원한다는 점입니다.

하지만, 이 방법은 Flash Player10 출시 이후로, 정상적으로 작동하지 않으며, 위와 같은 보안샌드박스 경고가 발생하게 됩니다.


원인
Flash Player10에서 System.setClipboard 메서드의 보안샌드박스가 변경 되었습니다.
클립보드를 지정할시 사용자의 직접적인 인터렉션을 필요로 합니다.
System.setClipboard를 통해 사용자의 클립보드에 텍스트를 지정할 수 있습니다. 종전엔 사용자의 직접적인 UI 인터렉션을 필요로 하지 않았습니다만, Flash 10에서는 사용자가 직접 UI인터렉션을 취해야 작동하게 됩니다.
위의 내용처럼, 클립보드를 지정할때엔 반드시 사용자가 직접 Flash 상에서 UI인터렉션이 발생해야 작동하게 됩니다.

따라서, 위의 방법은 UI를 HTML로 구현되어있고, 사용자의 인터랙션이 Flash 상이 아닌곳에서 System.setClipboard 메서드를 호출하였기 때문에, 보안샌드박스 에러가 발생하게 됩니다.


해결방법
해결방법은 사례1과 같이 간단하게도, 클립보드를 지정하는 부분에 대한 버튼을 Flash로 구현하면 정상적으로 작동합니다.



사례3. Policy File

문제
두개 이상의 사이트에서 어느 한 사이트의 정보를 활용하기 위해 crossdomain.xml 정책을 사용하는경우, Flash Player 9에서는 정상적으로 정보를 받아왔지만, Flash Player 10에서 일부환경에서는 정보를 받아오는데 실패하거나 보안 샌드박스 오류가 발생하게 됩니다.


원인
Flash Player의 Policy file strictness Phase2의 보안샌드박스가 변경되었습니다.
Policy File
Flash 10에서는 meta-policy의 기본값이 all에서 master-only로 바뀝니다. 이 설정은 해당 swf파일이 존재하는 도메인 루트의 crossdomain.xml을 읽어옵니다. 그러나, meta-policy를 바꿔서 예전처럼 쓸수도 있습니다.
meta-policy의 all 속성은, 모든 곳에 위치한 policy-file를 허용하지만, master-only 속성은 파일이 위치한 도메인 루트의 crossdomain.xml을 읽어오게 됩니다. meta-policy의 속성값은 아래링크를 참조하시기 바랍니다.
(참조)


해결방법
Policy File의 meta-policy의 기본 설정이 master-only로 변경되지만, crossdomain.xml의 값을 설정하여 기존 all 을 그대로 사용할 수 있습니다.
<cross-domain-policy>
     <site-control permitted-cross-domain-policies="all"/>
</cross-domain-policy>




아직, Flash Player 10의 설치율이 낮은만큼, 미리미리 파악하시어 빠른시기 내로 해결될수 있길 바랍니다.
유익한 정보가 되길 바랍니다. 감사합니다.
신고
Trackback 3 댓글 0

[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에서는 반드시 이런 문제가 해결될수 있길 바랍니다.
신고
트랙백 0 Comment 15
prev 1 next