태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

'하악하악'에 해당되는 글 6건

  1. 2009.02.09 여러분의 참여로 한글 문제를 함께 해결해 봅시다! (3)
  2. 2008.12.30 세라복을 벗기지 말아요 (4)
  3. 2008.12.06 [AS3] RFC822 Date형 사용하기 (6)
  4. 2008.11.20 Alchemy가 공개 (4)
  5. 2008.10.27 개발자의 시각으로 살펴본 RIA서비스 - 픽짜(Piczza) (10)
  6. 2008.10.17 검쉰님께서 책을 선물해주셨습니다 > < (12)

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

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

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

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

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

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


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

지금 현재, 플래시플랫폼의 한글 이슈는 한글처리시 상당히 중요한 영향을 끼치는 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)을 통해 알려주세요~

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

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

세라복을 벗기지 말아요



다소 파격적인 가사(?)가 돋보이는 노래입니다.
이 노래가 무려 23년여 전인 1985년에 나온 노래라고 하는데, 한국에선 심의상 불가능하겠죠?

그 충격적인 가사는 아래를 참고하시.....길..

다..다소 충격적인 가사


'세라복을 벗기지 말아요'는 모닝구무스메의 전신격인 오냥코클럽의 노래입니다. 1988년 해체까지 총 45명의 멤버가 있었다고 하니, 정말 그 규모가 대단한데요.

사용자 삽입 이미지

물론 오냥코클럽이 꼭 저런 논란의 소지가 있을수있는 노래를 불렀다는건 아니고,
오리콘 차트를 여러번 번갈아 치울만큼 히트곡도 많이 냈다고 하네요.

오냥코클럽 - じゃあね
(가사)
(멤버중 한명이, 치위생사가 되어 오냥코클럽을 졸업하게 되었는데, 졸업을 봄에 빗대어 아름답게 노래했군요)

사용자 삽입 이미지

위는 해체당시 사진이라는데, 한결같이 아쉬움에 눈물이 그렁그렁 맽혀있네요.
그때가 1988년 이라고 하니, 제가 태어나기도 전에 노래가 나왔고 해산까지 되었다고 하니,
감회가 색다르군요.



가사는 다소 엄하지만, 친숙한 멜로디때문인지 TV-CM송으로도 사용중이고, 이외의 일본내의 여러 드라마나 예능프로그램에서도 자주 회자되고 있다고 하네요.



그리고, 모닝구무스메도 최근 이노래를 다시 불렀다고하니... ㅎㅎ

제일 처음봤을때 다소 엄한가사로 충격을 받았지만,
이렇게 오랜세월동안 자주 회자되면서 많은 분들의 사랑을(?) 받았다는 점에 있어서는 정말 놀라웠습니다.

1985년쯤에 저 노래를 좋아하셨던 분들은 이제 한가정의 가장이되었을뻔 한데,
그들의 2세가 지금 이 노래를 따라부르고있을때 과연 어떤 생각이 들까요. ㅎㅎ
(한국에서 소녀시대가 '먹어줘요'라고 하면......)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 4

[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

Alchemy가 공개

MAX에서 정말 여러가지 재미있는 것들을 많이 공개하네요. 어제 2일차 Keynote에는 Alchemy가 공개되었습니다.
Alchemy의 뜻은 '연금술'이라고 하고, 발음은 '아크미'라고 하네요. (왜이렇게 크레미가 생각나지..)



사실 Alchemy는 작년 MAX에서 Flash On C/C++ 이라는 세션으로 공개 되었습니다. 이번 FP10 발표 이전에 공개될것으로 예상되었지만, 작년 MAX이후 잠행을 계속하다가, 이번 MAX에서는 코드네임까지 붙여서 정식 프로젝트로 인정이 되었다고 하네요.

Adobe Labs Alchemy
어도비CTO 인터뷰

작년 MAX에서는 약간 뭉뚱그려 설명이 되어서, C++ 소스코드 자체를 Flash Player에서 컴파일해 바로 실행이 가능한것으로 이해햇는데, 실제로는 그렇지가 않습니다.

사용자 삽입 이미지
사진출처 - 어도비 글로벌 플랫폼 애반젤리스트 Serge Jespers(http://www.webkitchen.be/)

위의 사진엔, Alchemy는 C/C++ 컴포넌트를 AS3로 포팅하는 툴임을 알 수 있습니다. FP10과 AIR1.5를 지원하는군요. 의사옷을 입은 두사람(오른쪽엔 RIA Camp에 내한한 라이언) 가운데엔 양복을 입은 두 남자가 서있는데, MAX의 키노트 자체가 딱딱한 키노트라기보단, 상당히 개방된 형식으로 진행되는것 같습니다.

현재 MAX에서 관람중이신 열이아빠님의 소개에 의하면, 토론형식으로 진행되는 세션도 많다고 하네요. 둘째날 키노트에는 각 팀이 나와서 그 팀의 비기를 전하는 형식으로 진행되었다고 합니다. 상당히 유쾌한 발표였을것 같습니다.

사용자 삽입 이미지

사진출처 - 어도비 글로벌 플랫폼 애반젤리스트 Serge Jespers(http://www.webkitchen.be/)

그리고 슈퍼마리오나, 퀘스트같은 게임류의 소스코드를 직접 포팅해서 AIR로 개발한 후 시연하는 모습까지도 보였다고 하네요. (슈퍼마리오 소스코드는 어디서 구했을려나..)

Alchemy에 큰 의미를 두자면, 기존 C, C++로 작성된 컴포넌트를 실제 RIA프로젝트에서 도입할때 별다른 노가다없이 그대로 포팅해서 AS3로 결과물을 얻을 수 있고 그대로 Flash, AIR에서 사용할 수 있다는 점입니다.

사용자 삽입 이미지
Alchemy는 C/C++ 소스코드를 AS3로 변환하는 프로그램으로, J2EE와 cygwin이라는 프로그램이 있어야 정상적으로 포팅이됩니다. 해당 AS3 코드를 그대로 Flash나 AIR에 활용할 수 있습니다.

Alchemy는 현재 베타 테스트가 진행중이기 때문에, 직접 받아서 사용해 보실수 있습니다.
다운로드

Alchemy는 윈도우, 리눅스, 맥용으로 나뉘어져있으며, 윈도우용은 반드시 J2EE와 Cygwin이 설치되어 있어야 정상적으로 작동하게 됩니다.

Alchemy의 실행방법 및 특징은 다음번에 Alchemy 살펴보기를 통해 다루어보도록 하겠습니다.

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

개발자의 시각으로 살펴본 RIA서비스 - 픽짜(Piczza)

안녕하세요. 주인장입니다 ^^;;
요즘 글이 많이 뜸했죠? ㅎㅎ 역시 유령블로그라 주인장의 안부는 아무도 안물어주시고!! ㅎㅎ

사실, 웹엡스콘 행사때문에, 여러가지로 많이 피곤해서 어제까지 뻗어있었습니다.
이제서야 겨우 정신을 차렸네요 @.@

앞으로 제 블로그에서 FP10과 CS4와 관련된 정보도 자주 다룰테니 앞으로도 많이 찾아와주시구요!
특히 블로그 방문자수가 하루에 300~400명정도 되는데 아무도 댓글을 안달아주셔서 살짝 삐쳐있습니다 ㅠㅠ
많이많이 달아주세요! 팍팍달어! 막막 달어!!


본론으로 들어가서, 현재 많은곳에서 RIA로 프로젝트를 진행하고 있고, 이런 서비스들이 많은 곳에서 활약하고 있습니다.
이번 웹엡스콘 행사의 런치패드에서도 RIA 기술로 개발된 곳이 5개사중 3곳이나 될정도로 RIA에 대한 열기가 후끈한데요!

그래서, 오늘부터 '개발자의 눈으로 살펴본 RIA서비스'를 연재할려고 합니다.
제 글은 아마 기획이나, 디자인쪽 보다는 '개발자'의 시각으로 살펴보기 때문에, 약간 난해하실 부분도 있을수 있겠지만, 이 서비스에 어떤부분에 RIA Technology가 반영되었고 그 효과는 어떤지, 많은 개발자 분들이 자세히 살펴보고 또 정보를 공유할수 있었으면 합니다.

오늘 처음으로 살펴볼 서비스는 바로 픽짜(Piczza)입니다!

사용자 삽입 이미지

픽짜는 엠비안에서 진행중인 프로젝트로, 얼마전 어도비플렉스 공식홈페이지 "Flex 구축사이트, '우리가 최고야'"에 선정되기도 했는데요.

픽짜는 파일배달시스템으로 백앤드 쪽에서는 ROR과 Mysql로 구현되어있고, 클라이언트 프로그램은 Adobe AIR로 구현되어 있습니다.

그럼 픽짜에는 어떤 RIA기술들이 활용되었는지 한번 살펴볼까요?


Custom Chrome(Adobe AIR)
Adobe AIR에서는 윈도우 창을 일반적으로 Chrome라고 부르며, 개발할 수 있는 Chrome은 총 3가지 종류가 있습니다.

일반적으로, 각 시스템별 윈도우창 템플릿을 사용하는것을 System Chrome, Adobe에서 별도로 만든 Chrome를 사용하는것을 Flex Chrome, 그리고 서비스별로 직접 새롭게 만드는것을 Custom Chrome라고 합니다.

System Chrome는 각 시스템 별로 윈도우디자인은 바뀌지만, 사용자에게 가장 익숙하다는 장점이 있으며, Flex Chrome, Custom Chrome는 운영체제가 다르더라도 보이는 윈도우 디자인은 모두 같습니다. 다만 Custom Chrome는 윈도우의 모든 기능, 디자인을 모두 직접 개발하여야 한다는 번거로움이 있습니다. 

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

Piczza는 이런 Custom Chrome를 적절히 잘 활용하여 개발되었습니다. 사용자의 요구에 따라 창의 크기가 스르르 바뀌고, 또 윈도우의 오른쪽 공간을 넓혀 그 공간을 활용하여 회원가입을 할때도, 웹이 아니라 클라이언트에서도 바로 회원가입을 할 수 있습니다.

또 Piczza에서는 Custom Chrome에 들어가는 인터페이스들을 스킨화 해서 디자인을 바꿔볼수도 있고, 또 개발사가 아니더라도 사용자가 직접 스킨을 만들어 사용하고 배포할 수도 있습니다.


Native File Drag&Drop (Adobe AIR)
Flash/Flex의 AS3에는 DragManager라고 해서 각 UI객체들을 Drag&Drop하는것을 관리하는 API가 있습니다. Adobe AIR에서는 이 API를 좀더 확장하여 NativeDragManager가 추가되었습니다.

NativeDragManager은 DragManager과 마찬가지로, Drag&Drop을 제어하지만, Native Level의 Drag&Drop를 제어한다는 특징이 있습니다.

예를들어, 이 API를 활용하여 파일을 AIR 애플리케이션 내부로 드래그 할 수 있고, 또 AIR 애플리케이션 내부에서 애플리케이션 밖으로 내보낼 수 있습니다.
사용자 삽입 이미지사용자 삽입 이미지

보통 파일 업로더에서는 파일을 업로드 하기 전 우선 사용자가 업로드할 파일을 지정해서 업로드 하게 됩니다.
Piczza에서는 업로드될 파일을 추가할때, AIR의 NativeDragManager을 활용하여 사용자는 drag&drop로 간단히 추가할 수 있습니다.


Invoke Event (Adobe AIR)
여러 데스크탑 애플리케이션에서는 사용자의 편리성을 위해 .zip, .alz, .avi와 같이 특정 파일 확장자를 실행하게 되면, 연결프로그램 형식으로 해당 프로그램과 함께 실행됩니다.

Adobe AIR에서도 물론 연결프로그램 형태를 활용할 수 있습니다. 특정 파일을 애플리케이션과 함께 실행시킬때 발생하는 이벤트를 InvokeEvent라고 합니다. 이 이벤트를 걸어두면, 프로그램이 실행시 함께 Dispatch 됩니다.

사용자 삽입 이미지사용자 삽입 이미지
Piczza에서는 사용자의 편리성을 위해 Native Drag&Drop뿐 아니라, 해당 파일에서 오른쪽 클릭을 해서 파일을 전송목록에 추가하는 기능을 확장형 플러그인 형태로 배포하고 있습니다.

다만 아쉬운점은 해당 플러그인이 윈도우 기반으로 개발되었기 때문에, 윈도우환경에서만 작동을 한다는 점입니다.


대용량 파일의 안정적 전송
Flash/Flex에서 파일을 전송할 때엔, 파일 업로드와, 다운로드와 관련된 Filerefrence API를 활용합니다. 다만, 이 API는 HTTP로 전송되기 때문에, 대용량 파일을 전송할경우 Back-end계열에서 해당 파일의 데이터를 모두 받을때 까지 계속 실행되게 되어 부하를 주게 되기 때문에 대용량 파일의 안정적인 전송이 힘들다는 점이 있습니다.
사용자 삽입 이미지
Piczza는, 4GB의 대용량 파일까지 지원하게 되는데, 만약 이와같은 대용량 파일을 Filerefrence로 전송하게 되면, 해당 파일을 전송받게 되는 Back-end에서도 막대한 부담을 느끼게 되며, 파일의 안정적인 전송도 힘들어 질 것입니다.

사용자 삽입 이미지

하지만 Piczza에서는, 이런 대용량 파일을 전송하는데 있어서, Filerefrence를 활용하지 않고, 별도의 소켓통신을 활용하여, 파일을 전송하고 있습니다. (레퍼런스 참고)

Piczza의 사례와 같이, HTTP는 비동기적 전송 방식으로 한번에 모든 데이터를 전송해야 한다는 단점이 있지만, 소켓으로 데이터를 전송하게 될경우 동기적으로 서버와 연결을 할 수 있으며, 파일을 나눠서 전송할 수 있기 때문에, 보다 안정적으로 고속의 전송이 가능하다는 장점이 있습니다.

이런 대용량 파일의 안정적 전송을 Adobe AIR를 활용해서 구현했다는 점이 흥미로운데, Adobe AIR는 기존 FP9와 달리, 로컬 파일의 ByteArray를 읽어 올 수 있습니다. 따라서, 대용량 파일을 전송할때 기존과 달리 파일의 ByteArray를 나눠서 읽어오고, 동기적으로 서버에 보낼수 있었기 때문에 안정적 파일 전송이 가능했습니다.


지금까지 Piczza에서 사용중인 RIA Technology를 알아 보았습니다. 픽짜는 국내 대스크탑 상용 애플리케이션 중 최초로 멀티플랫폼을 지원하고 Adobe AIR 기반을 통해 개발되었습니다. 또, 애플리케이션 내에서도 AIR의 기능들이 속속 잘 어울러져 있습니다. 리눅스, 맥, 윈도우환경에서도 Piczza를 통해서 파일을 간단히 배달할수있다는점! 정말 매력적이지 않나요? ㅋㅋ

Piczza는 앞으로 오픈소스로도 진행될 예정이라고 하니, 저도 긴장 가득 하고 있겠습니다! 또 외국어 서비스로 오픈될 예정이라고도 하니, 외국시장에서도 한국 IT의 진면모를 보여주시길 바랍니다!!!

마지막으로 제가 Piczza에 제안하는 서비스를 하나 말씀드리면서, 이만 물러가겠습니다 (__)


그럼 이런서비스는 어떨까요? Piczza on Web
Piczza는 대용량 파일도 안정적으로 전송해야하기 때문에, Filerefrence를 사용하지 않고, 별도의 네트워크 기능들을 구현하여 사용하였습니다. 무엇보다 이 Filerefrence가 '파일 선택, 파일 업로드, 파일 다운로드'등의 제한적 기능만을 지원하기 때문에 Adobe AIR의 사용이 필수적이었을 것입니다.

그리고, 얼마전(10월 16일) Flash Player10이 출시되었습니다. 물론 갑자기 바뀐 보안 샌드박스 때문에 많은 개발자와 사용자들에게 원성을 사고 있지만, 3D이펙트 추가, 커스텀 필터, FTE, 사운드 제어 등 강력한 기능들이 추가되었습니다.

그중 Filerefrence API에서도, 변화가 있었는데 load()와 save() 메서드가 추가되었습니다.
(참고자료 - [FP10] Filerefrence는 어떻게 달라졌을까?)
이 메서드들은 그간 Filerefrence는 클라이언트의 파일은 선택하고, 업로드, 다운로드하는데 국한되었지만, Adobe AIR와 마찬가지로, 파일의 Bytearray를 불러오고, 또 파일을 저장할 수 도 있습니다.

Piczza에서는 별도의 소켓통신을 이용해, 파일을 ByteArray를 나눠서 동기적으로 전송하여, 대용량 파일에서도 안정적 전송이 가능했는데, 이젠 웹기반인 Flash Player 10에서도 파일의 ByteArray를 불러올수 있고, 위와 같은방법으로 안정적 전송이 가능해졌습니다.

따라서, Piczza에서도 기존 AIR에서 활용했던 네트워크 업로드 기술을 활용하여, 웹으로도 크로싱플랫폼 기반 안정적인 파일 전송 시스템을 구현해본다면!!! 크아! 정말 멋지겠죠? ㅎㅎ

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

검쉰님께서 책을 선물해주셨습니다 > <

얼마전, 검쉰님 블로그에 AIR In Action을 소개하신글에 농담조로 '지르고 싶지만 총알이 문제네요ㅠ' 라고 농담조로 댓글을 남겼는데, 어랏! 검쉰님께서, 책을 선물해 주신다고 하시더군요.. +ㅁ+

책이 한권 더있으시거나, 보시던 책을 선물해주시는줄 알았는데,
죄송하게도 책을 한권 구입하셔서 보내주셨네요.. 흐억..!

사용자 삽입 이미지
ㅠㅠ Yes24에서 직접 구매하셔서,
오늘 도착했습니다.!
(중요한 부분은 모자이크처리 ㅎㅎ)
사용자 삽입 이미지
검쉰님의 멋진 메세지 '열공하세요! ;)'
넵!! 주신메모, 그리고 AIR IN Action
가보로 간직하고 열공하겠습니다.. ㅎㅎ 감사합니다!
사용자 삽입 이미지
인터넷으로만 봤던 책이 이렇게!!
AIR를 들고계시는 배불뚝이 아저씨의 뭔가 심오한 표정!!!
뭔가 모르게 AIR의 이미지를 한눈에 알아보는듯한 느낌이네요.. ㅎㅎ
(뭔가 중후하면서 심오한 데스크탑 애플리케이션 이라는 느낌인가!)

이야 ㅠㅠ 검쉰님 정말 감사합니다!
전, 농담조로 남긴 댓글이었는데, 이렇게까지 선물로 보내주시고... 흑흑흑..

괜히 실례가 되었는게 아닌지.. ㅠㅠ

정말 열심히 잘 읽겠습니다.
그리고 멋진 AIR 애플리케이션 많이 선보일수 있도록 노력할게요.

감사합니다 : )
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
트랙백 0 Comment 12
prev 1 next


티스토리 툴바