'flex'에 해당되는 글 47건
2009. 4. 12. 17:49
안녕하세요? 검쉰입니다.
Flash Platform 한글문제 공동대응팀 해오름 모임을 무사히 잘 치뤘습니다.



사용자 삽입 이미지

온오프믹스로 103명 참가신청 해주셨고, 그중 80분 정도가 참석해주셨습니다.
토요일에 하는 모임이라 출석률이 저조할 것이라 생각을 했는데, 예상 밖의 많은 참여가 고마웠습니다. ;)

아쉽게 참석을 못하신 분들을 위해 사진으로 나마 행사때의 모습을 전달해드리려고 합니다.

0. 행사 준비중
0123


1. 한글 대응팀 소개 및 기조연설 (이희덕)
012


2. Flash Platform 게임개발 노하우 (이정웅)
0123


3. FlarToolKit으로 구현하는 증강 현실 (옥상훈)
012


4. Flash Platform 한글문제 (이희덕)
012


5. 토론의 장 (대응팀 전원)
012345


6. Flex Skin for Developers (김학영)
012345


7. Creating Visual Experiences with Flex (이준하)
012345



8. Q&A 및 폐회
01


9. 경품 추첨
01234567891011121314151617181920




행사를 마치고 뒷풀이 하러가기전 단체사진!! 모두들 수고 하셨습니다 ;)



많이 참석해 주셔서 감사드립니다.

넓은 강의실 지원해주신 숭실대학교 측에 감사드리고, (캠퍼스가 참 이쁘더군요. 숭실대에서 특강 한번 해야되는건가요? ^^)
도서 후원해주신 월간 마이크로소프트웨어위키북스 측에 다시 한번 감사드립니다. ;)

다들 좋은 시간이었다고 해주셔서 감사했습니다.

발표자료는 저희 팀 블로그인 http://flashteam.kr/ 로 공유될 예정입니다.

다음에 더 좋은 자리로 좋은 시간 가질 수 있었으면 좋겠네요. :)

2009. 4. 1. 21:45
안녕하세요? 검쉰입니다.

제가 Flex를 처음 접하고, '이거 정말 멋지다!' 라고 생각을 했습니다. 그 뒤로 이어지는 생각은 '이거 한글 입력은 왜 이리 느려?'. 몇 년이 지난 아직도 한글 입력은 느리기만 한데, 언제 수정될지는 아무도 모른다죠. 비 영어권의 설움이라고 할까요? 과학적이고 독창적인 자랑스런 한글을 쓰는게 죄(?)가 되는 이상한 상황.

이런 상황을 헤쳐나가고자 지난 1월 이희덕님의 제안으로 'Flash Platform 한글문제 공동대응팀'이 생겼습니다. (짝짝짝)
그간 오프모임을 진행하면서 팀원간 의견도 나누고, 최근 Flex SDK 3.2 + FP 10 에서의 한글 입력문제가 해결되는 기쁨을 맛보기도 하였습니다.

사용자 삽입 이미지

이제 다른 많은 Flash Platform 개발자 분들과 만나, 한글문제와 개발 노하우를 이야기해보고자 합니다.

 *행사 개요

     날짜 : 2009년 4월 11일 (토)
     장소 : 숭실대학교 벤처관 3층 대강의실
     시간 : 오후 2시 ~ 6시
     주최 : Flash Platform 한글문제 공동대응팀
     주관 : 숭실대학교 글로벌미디어학부
     후원
Agenda

     14:00 ~ 14:10 : 학교 시설 사용과 관련된 안내 (이희덕)
     14:10 ~ 14:30 : 한글 대응팀 소개 및 기조연설 (이희덕)
     14:30 ~ 15:00 : Flash Platform 게임개발 노하우 (이정웅)
     15:00 ~ 15:30 : FlarToolKit으로 구현하는 증강 현실 (옥상훈)
     15:30 ~ 16:00 : Flash Platform 한글문제 (이희덕)
     16:00 ~ 16:40 : 토론의 장 (대응팀 전원)
     16:40 ~ 17:20 : 잡부 Flex 개발자를 위한 Flex 스킨 (김학영)
     17:20 ~ 17:50 : Creating Visual Experiences with Flex (이준하)
     17:50 ~ 18:00 : 정리 및 폐회




행사 참석 신청 및 자세한 소개는 온오프믹스 를 통해 신청해주시면 감사하겠습니다. ;)
많은 참석 부탁드립니다 !!!
함께해요~ ㅎㅎ


2009. 3. 27. 15:36
안녕하세요? 검쉰입니다. 오랫만에 블로그 포스트로 인사드립니다.
그동안 티스토리에서 문제가 되었던 Flash Player 10에서 swf 로드가 안되던 문제가 해결이 되었네요. ;) 기존의 제 포스트들도 정상으로 보이고요. 이사하려다가 그 것또한 귀차니즘에 의해 좌절. ^ㅂ^; 아무튼 다시 오랫만에 글로 인사드려요. ;^)

흔히 자주 쓰시는 Flash로 만든 네비케이터 바 에서 메뉴정보를 외부의 XML 로 받아오는 경우와 같이 외부의 데이터를 읽어오는 과정에서 한글이 깨지는 경험을 한번쯤은 하셨을 겁니다. 이런 경우 커뮤니티에서 검색해보시면 System.useCodePage = true; 를 넣어라. 라는  답변을 많이 볼 수 있습니다. 심지여 이 것을 "한글 깨짐 방지 코드"라고 부르는 경우도 있더군요. 옛 속담에 '선무당이 사람잡는다'라는 이야기가 있습니다. 정확하게 이해하지 못하고 쓰게 되면 뒷일 감당하기 힘들게 되는 법!!. 왜 System.useCodePage = true; 를 넣으면 한글이 안꺠지는지 알아보도록 하겠습니다.

'EUC-KR' 이라고 많이 보셨을 겁니다. 한글을 정의한 캐릭터 셋(charset)입니다. 보통 한글 윈도우에서 제작한 파일은 'EUC-KR' 캐릭터 셋으로 저장되는 경우가 많습니다. 이 때 캐릭터 셋이란 글자들의 집합을 정의한 것이라고 생각하시면 됩니다. (보다 자세한 건 위키백과의 설명을 참조하시길 바랍니다.)
이러한 캐릭터 셋이 다르게 되어 있는 데이터를 읽어오게 되면 한글이 깨지게 되는데요, Flash 내부에서는 유니코드(UTF-8)를 기본으로 사용하기 때문입니다. 'EUC-KR'로 제작된 파일을 'UTF-8'로 읽었으니 당연히 서로 다른 캐릭터 셋을 사용하게 되므로 한글이 깨지게 되는 겁니다. 이러한 경우에 바로 System.useCodePage = true; 를 사용하면 한글이 깨어지지 않는데, 그 이유는 LiveDocs 에도 잘 나와있습니다.

useCodePage 속성  
useCodePage:Boolean  [읽기/쓰기]
언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9

Flash Player에서 외부 텍스트 파일을 해석하는 데 사용할 코드 페이지를 지정하는 부울 값입니다. 이 속성을 false로 설정하면 외부 텍스트 파일이 유니코드로 해석됩니다. 이러한 파일은 저장할 때 유니코드로 인코딩되어야 합니다. 이 속성을 true로 설정하면 외부 텍스트 파일이 Flash Player가 실행되는 운영 체제의 일반 코드 페이지로 해석됩니다. useCodePage의 기본값은 false입니다.

flash.display.Loader.load(), flash.net.URLLoader, flash.net.URLStream 또는 XML 클래스를 사용하여 외부 파일로 로드하는 텍스트를 Flash Player에서 유니코드로 인식하려면 이러한 파일을 유니코드로 저장해야 합니다. 외부 파일을 유니코드로 인코딩하려면 Windows 2000의 메모장과 같이 유니코드를 지원하는 응용 프로그램에서 파일을 저장해야 합니다.

유니코드로 인코딩되지 않은 외부 텍스트 파일을 로드하려면 useCodePagetrue로 설정합니다. 이렇게 하려면 데이터를 로드하는 SWF 파일의 첫 번째 프레임에 다음 코드를 첫 코드 행으로 추가합니다.

System.useCodePage = true;

이 코드를 추가하면 외부 텍스트가 Flash Player가 실행되고 있는 운영 체제의 일반 코드 페이지로 해석됩니다. 영문 Windows 운영 체제의 경우 대개 CP1252이고 한국어 운영 체제의 경우 EUC-KR입니다. 만약 useCodePagetrue로 설정하면 Flash Player 6 이상 버전은 Flash Player 5와 같은 방법으로 텍스트를 처리합니다. Flash Player 5에서는 모든 텍스트를 Flash Player 실행 운영 체제의 일반 코드 페이지를 사용하는 것으로 간주하고 처리했습니다.

useCodePagetrue로 설정하는 경우 플레이어가 실행되는 운영 체제의 일반 코드 페이지에 외부 텍스트 파일에 사용되는 문자가 포함되어 있어야 텍스트가 표시됩니다. 예를 들어 중국어 문자가 포함된 외부 텍스트 파일을 로드하는 경우 CP1252 코드 페이지에는 중국어 문자가 없으므로 이 코드 페이지를 사용하는 시스템에서 중국어 문자가 표시되지 않습니다.

모든 플랫폼에서 SWF 파일에 사용된 외부 텍스트 파일을 볼 수 있게 하려면 모든 외부 텍스트 파일을 유니코드로 인코딩하고 useCodePagefalse로 설정된 상태로 두어야 합니다. 이렇게 하면 Flash Player 6 이상에서 텍스트가 유니코드로 해석됩니다.


LiveDocs 에도 나와 있는 것 처럼 useCodePage 를 true로 설정하면 유니코드가 아닌 운영체제의 codepage로 해석이 되는 것이죠. 한글 윈도우의 기본 codePage는 'EUC-KR(51949)' 입니다. 그래서 외부의 'EUC-KR'로 되어있는 문서가 깨지지 않고 읽히게 되는 것입니다.

더 이상의 문제가 없어보입니다만,  실제 그렇지 않습니다. 해당 swf 를 로드하는 사용자가 외국어 OS를 사용하고 있다면 어떨까요? 열심히 만든 어플을 정식으로 런칭했는데, 그걸 외국의 한국인이 본다면???

이론적으로 보면 'EUC-KR'로 되어 있는 문서를 해당 OS의 codePage로 읽게 될텐데, 다른 언어의 OS는 codePage가 설마 'EUC-KR(51949)'일까요?? 위의 livedocs의 설명에도 나와 있듯, 다른 나라의 OS는 한국어 OS와 codePage가 다르다는 군요. (다른 나라 언어의 캐릭터 셋에 대해서 궁금하시다면 여기에서 확인해보시면 되겠습니다.)

실제로 그런지 확인을 위해서 아래와 같은 간단한 swf 파일을 만들어 봤습니다. 소스코드는 다음과 같습니다.
Flex 로 만든 App.

로드한 XML 파일



동일한 XML 파일을 'UTF-8', 'EUC-KR'로 각각 저장해서 useCodePage를 각각 false, true 로 설정해 영어, 일어 Windows 에서 IE로 읽어봤습니다.
클릭하셔서 확인해보세요.
Windows XP 영문판에서 swf 로드

Windows XP 영문판에서 swf 로드

Windows XP 일어판에서 swf 로드

Windows XP 일어판에서 swf 로드



UTF-8로 되어있는 파일은 어떤 OS든지 간에 잘 로드가 되고 있고, 'EUC-KR'로 되어있는 것을 System.useCodePage = true; 로 설정한 것은 한글이 여지없이 깨져보이는 것을 확인 할 수 있습니다. 외국에 서비스 할 생각이 없는 어플이라 하더라도, 기본적으로 'UTF-8'로 파일들을 저장해 놓으시면 한글문제를 잘 피해가실 수 있다고 생각합니다. 단순이 파일만이 아니라, HTTPService로 load 하는 데이터 또한 'UTF-8' 로 제작되어야 하겠죠?

하지만 할 수 없이 'EUC-KR'을 사용해야 할 때가 있습니다.네이버 카페의 경우 'EUC-KR'로 되어 있는데요, 이 것 때문에 useCodePage를 true로 설정할 수 는 없는 것 아니겠습니까? 이런 고민을 제가 존경하는 원강민님께서 블로그에 이미 포스팅 하신 적이 있습니다.
System.useCodePage 대신 이렇게.. 이 포스트를 참고 하시면 좋겠습니다.

간만에 글을 썼더니 꽤나 길어졌네요 :-) 다들 좋은 주말 되시길!
2009. 2. 18. 11:03
안녕하세요? 검쉰입니다.
새로운 글 올라왔을까 싶어 가끔 접속해주시는 분들께 죄송하다는 말씀을 드려야겠네요.

현재 티스토리에서 Flash Player 10 사용지 SWF 파일을 로드하지 못하는 버그가 존재하고, 이를 언제까지 수정하겠다라는 대답은 전해듣지 못한 상태입니다. 단지 Flash Player 9를 사용하라라는 답변만 들었습니다.

제 글에는 필수적으로 예제 SWF 파일이 올라가는데, 이를 작성한 저조차도 Flash Player 10 사용하기때문에 볼 수 없어서 글을 작성하지 못하고 있었습니다. 물론 Firefox에는 Flash Switcher 라는 Flash Player 버전 변경 플러그인이 존재합니다만, IE에는 FP10 이 설치되어 있어 불편하기 그지 없습니다.
글을 읽어주시는 고마운 분들중에서도 SWF 파일이 나오지 않아 답답해 하시는 분들도 계시고요.

해서, 이와 같은 이유로 당분간 티스토리에 포스트는 중지해야될 것 같습니다. 개발자 특성상 뭔가 뜯어고치고 싶으나 못하는 티스토리에 대해서 답답한 면도 있었고 해서 설치형블로그로 갈까 싶기도 했습니다.  지돌스타님의 말씀으로는 바꿔 탄 워드프레스도 참 좋다.. 라시는데 이번기회에 옮겨탈까 싶기도 하고요. 아무튼 저도 고민을 좀 해보겠습니다.

모두들 좋은 하루 되세요~ ;)



ps. 기타 질문사항은 warkyman [at] gmail.com으로 보내주시면 빠른 시간안에 답변 드리도록 하겠습니다.
2008. 12. 3. 15:14
TextInput 으로 사용자에게 어떤 입력을 받게 되는 경우가 있습니다. 이때에 보다 많은 내용(예를 들어 사용자의 자기소개 같은 값)을 입력 받아야 하는 경우가 생기는데, 이때 사용하면 좋은 컴포넌트가 TextArea 입니다. TextArea 컴포넌트로 여러줄로 입력을 받게되면 사용자는 필연적으로 엔터키를 눌러 개행(줄바꿈)을 하게 되는데 오늘 이야기해보고자 하는 것은 이 개행에 대한 처리입니다.

문자열에 엔터를 처리하기 위해서 이스케이프 문자인 백슬래시(\)를 사용하여 처리를 하게 되는데, 보통 흔히 알고 있기로는 엔터를 처리하기 위해 \r\n 을 문자열에 포함시키면 된다고 아실 겁니다. 저도 학교에서 C수업을 들을때 그렇게 배웠습니다.

\r   : 캐리지리턴(carriage return) -  커서를 해당 줄의 처음으로 옮김
\n   : 라인피드(linefeed) - 커서를 해당 줄의 다음줄로 옮김

커서를 해당줄의 왼쪽으로 옮겨 다음줄로 내리면 엔터키를 친 것과 동일한 효과가 나오게 됩니다.
하지만 TextArea 에서는 \r 만으로 엔터키 처리를 하고 있습니다.




위와 같이 엔터키를 넣게 되면 실제로 TextArea의 text 속성에서 받는 문자열에는 "텍스트\r입력" 이라고 들어있게 되는 것이죠.

사용자에게 입력받은 해당 데이터를 서버에 저장하고 불러와 다시 TextArea 에 넣어줄때에 아무런 처리를 하지 않아도 상관없습니다. 어짜피 넣어진대로 다시 넣는 것이니까요. 하지만 서로 다른 언어에서 같은 데이터를 사용시에는 문제가 됩니다. 언어들마다 엔터의 처리가 다르기 때문이죠.

위에서 처럼 \r\n 으로 엔터키를 처리하는 경우도 있고, \r 만으로도, \n 만으로도 처리하는 경우가 있습니다. 만약 \r\n으로 엔터를 처리하는 시스템에서 만들어 놓은 문자열을 TextArea 에 대입하면 어떻게 될까요? "텍스트\r\n입력" 이라고 TextArea의 text 속성에 넣으면 아래와 같은 현상이 발생합니다.


위에서 보시는 것 처럼 \r\n 둘다 엔터키로 인식되네요.

참고로 말씀드리자면 MXML 상에서 위의 이스케이스 문자를 인식시키실때는 아래와 같이 하시면 됩니다.


아무튼, 저는 이와 같은 문제를 자바로 구성된 서버를 이용하면서 겪게 되었습니다. 해당 서버를 이용하는 또다른 쪽이 델파이로 구성되어 있는데, 델파이에서는 \r\n 으로 엔터키를 표현하는데, 플렉스에서 받아오니 엔터가 2번 입력되는 것 처럼 보이는 것은 물론 Flex 쪽에서 생성한 문자열은 델파이에서 엔터키가 없는 상태로 출력되는 것이었습니다.
물론 더 좋은 방법들이 있을꺼라 생각되지만, 저는 플렉스쪽에서 변환해서 쓰고 저장시에도 변환해서 보내기로 결정을 했습니다.
그래서 아래와 같은 코드를 구현하였습니다.



네이밍이 좀 별로네요.. ;;
엔터키의 처리가 다르다는 것을 알아두시면 좋겠네요. ;)


ps. Flash Player 10 이 공개된 이후 FP10 이 설치된 브라우저에서 이전 포스트의 swf 파일을 로드하지 못하는 경우가 생기네요.
정확하게 이유는 모르겠습니다. 티스토리 포럼에 같은 내용의 버그신고가 이어지고 있는데, 자세히 알아봐야겠습니다.

2008. 10. 1. 13:05
Adobe AIR에 대해 자세히 다루고 있는 AIR in Action 의 한글 번역판이 우여곡절(원서 출간 전에 번역 작업이 시작되었는데, 중간에 책 내용이 죄 바뀌였다는 슬픈 이야기)을 겪고 드디어 예약판매에 들어갔습니다. 절찬리에 판매중입니다.

현재 예스24, 강남컴퓨터, 인터파크, 알라딘, 교보문고 에서 예약판매 중이라고 출판사인 위키북스의 블로그에서 공개하고 있네요. 글 쓰고 있는 현재는 24일부터 배송되도록 예약판매중인 곳은 강컴, 인터파크, 교보문고 입니다.

에이레네 라는 닉네임으로 친숙한 유윤선님께서 열심히 번역해주셨습니다. 우연찮게 베타리더로 활동하게 되어 원본과 번역본을 번갈아 보게 되었네요. 물론 번역의 피드백을 드린다는 명목이었습니다만, 오히려 제가 더 도움이 되었습니다.

책 내용은 아주 만족스럽습니다. 책을 관통하는 AirTube 라는 어플을 제작하면서 AIR에서 제공되는 중요 API를 빠짐없이 설명하고 있습니다. 기존에 원서라서 제대로 이해하지 못했던 기술적인 내용들도 이 책을 통해 알게된 것이 엄청납니다. 그만큼 내용 굿!!! AIR에 관심있으시다면 꼭 한번 읽어보길 권해드립니다.

이 책 한권을 쫙 읽으시면 AIR로 뭔가 만들고 싶어 손가락이 근질근질해질 것이 틀림없습니다. ;)


베타리더 서평을 책에 싣는다고 하셔서 서평을 보내드렸는데, 지면관계상 못 싣었다는 안타까운 이야기가 들리네요. ;^0 위키북스 블로그에는 서평을 적어주셨네요. 쪼금 아쉽지만 뭐....

제가 정식출간된 책을 받아보지는 못했기때문에, (그야말로 프리뷰) 라서 책의 상태는 알길이 없네요. 너무 무겁지만 않았으면 좋겠습니다. ;) (외쿡 책들은 가볍고 좋던데 말이죠.) 책을 받아서 전체적으로 훓어보았습니다만, 아주 만족스럽습니다. ;) 뒷표지에 너무 산소 드시는거 뺴고는.. ^^;
편집상태도 좋고, 제 원대로 무게도 적당합니다. ;) 위키북스 측에서 대단히 신경 많이 쓰신듯 하네요.

다만, 책 구매하신 분들이 의아하실 수도 있겠습니다. '책에 나오는 그 많은 소스들은 어떻게 하라고 부록 시디 한장 없냐'고 말이죠. 책에는 실리지 못했지만 역자이신 유윤선님께서 네이버에 AIR IN Action 카페를 운영하고 계십니다. 소스 및 관련 의문사항은 카페에서 해결하시면 되겠네요. 책 사신 분들께서는 가입하셔서 많은 정보 구하시면 좋겠습니다. ;)
현재 책 내용에 관련된 공지들이 올라오고 있으니 참고하시면 좋겠네요.


2008. 9. 28. 22:30
단도직입적으로 말씀드리자면, new 키워드는 비용이 비쌉니다. 많은 리소스를 사용하게 된다는 말이죠. 물론 안쓸 수야 없죠. 새로운 객체를 생성하려면, 당연히 써야됩니다. 하지만, 사용하게 되면 그만큼의 연산과 메모리의 차지는 어쩔 수가 없습니다. 이런 문제들로 인해 좀 더 효율적인 객체의 사용을 위해 객체 풀(Object Pool) 을 구성하여 사용한다던가 하는 방법을 고민하게 되죠.
본 포스트에서는 객체 풀에 대해서 설명하지는 않겠습니다. 위에 링크로 걸어놓은 영구기님의 포스트를 참고하시도록 하시고요, 이번 포스트에서 제가 설명하고자 하는 것은 new 키워드를 사용하지 않고서도 사용할 수 있는 타입들에 대한 사용방법입니다.

데이터형태는 아래와 같이 2가지의 데이터형이 존재합니다.

Primitive Data Type : Boolean, int, uint, Null, Number, String, void
Complex Data Type : Object, Array, Date, Error, Function, RegExp, XML, XMLList


기본적인 데이터 형태(Primitive Date Type)의 변수선언시에는 물론 new 키워드는 사용하지 않습니다. 하지만 사용하지 못한다는 것은 아닙니다.
문자열을 저장할 때에 String 를 사용하게 됩니다. 이 String 형 변수는 다음과 같이 선언하게 됩니다.

하지만 아래와 같이 new String() 이라고 할 수도 있습니다.

int, uint, Number, Boolean 도 마찬가지로 new 키워드를 이용하여 변수에 할당해줄 수 있습니다. 허나 그렇게 사용하지는 마십시오. 기본적인 데이터 형태의 변수는 new 키워드를 사용하지 않아도 메모리가 할당되게 됩니다. 게다가 더 빠르고 간편합니다.

그래도 확인하고 넘어가는 차원에서 Number 형태의 변수의 할당에 대해 살짝 실험해보도록 하겠습니다. 아래의 코드를 보시면 Number 변수를 할당시에 new Number()를 사용하는 것과 직접 값을 입력하는 것에 대해서 속도를 비교해보고 있습니다. new 키워드를 사용하지 않는 것이 더 간편합니다. 그 아래에는 실제 결과물입니다. 테스트 버튼을 클릭하셔서 테스트 해보시기 바랍니다.



그렇다면 보다 복잡한 데이터 형태(Complex Data Type)의 변수를 선언시에는 new 키워드를 어떻게 쓰지 말라는 말일까요?
가장 먼저 많이 사용하는 Array에 대해서 말씀드려보겠습니다. 우선 Array를 선언시에 아래와 같이 선언할 수 있습니다.

이전 포스트에 살짝 언급하였습니다만, Array의 경우는 [] 를 이용하여 새로운 Array를 할당할 수 있습니다.

이와 비슷하게 Object를 할당할 때에도 new Object()  대신에 {} 를 이용하여 새로운 Object 할당이 가능합니다.
아래와 같은 선언을 다른 예제 소스코드에서 흔히 보셨을겁니다.

위에서 설명드린 것과 같이 Array 를 할당시에 [] 를 이용하고 Array 내부의 값을 {}를 이용하여 Object 형태로 정의하였습니다.
만약 [], {} 없이 선언하려고 한다면 아래와 같이 하여야할 것입니다. (물론 이렇게 사용할 일은 거의 없죠. 매우 극단적인 예랄까요? )


RegExp 같은 경우도 new 키워드를 사용하지 않고 선언 가능합니다.


XML 도 마찬가지입니다. 아래와 같이 흔히 사용하시고 있죠?
2번째 라인에 있는 것처럼 사용하실 일은 없을 듯합니다. 물론 String 형태의 XML 데이터라면 XML 로 변환하려면 2번째 라인처럼 해야겠죠.


마지막으로 위에서 말씀드린 Array와 Object 의 new 키워드 사용 유무에 대한 속도차 테스트를 해보고 마무리 짓겠습니다.
(RegExp 는 속도차가 거의 없어서 생략하였고,  XML은 쓸일이 없을 것 같아 생략하였습니다. ㅎ)

아래는 Array를 테스트한 코드입니다.

아래는 Object를 테스트한 코드입니다.


뭐 결론은 new Array() 대신에 [], new Object() 대신에 {} 를 사용하자는 것입니다. ;)
긴 글 읽어주셔서 감사합니다. ;) 다 읽으신 후에는 덧글 하나 써주시는 센스!!

참고자료 :
객체 풀[Object pool]을 이용해 보자.  - 영구기님 블로그
ActionScript3.0 너는 누구냐? - 엄진영님 Flex 챔피언 블로그

2008. 9. 7. 02:05
본 포스트는 Adobe Flex 공식사이트에서 진행하는  8월 RIA EVENT - 기술문서 리뷰 이벤트, Flash편 응모하기 위하여 작성 된 글입니다.


제가  리뷰하려고 하는 기술문서는 오창훈님께서 작성하신 'Flex와 Flash간의 파라미터 주고 받기' 라는 제목의 기술문서입니다. (이 글을 읽지 않으신 분께서는 링크를 클릭하셔서 우선 기술문서를 읽으신 후 제 포스트를 읽으시면 도움이 되실 것이라 생각됩니다. ) 위 기술문서에서는 swf 파일끼리의 파라미터의 전달에 대해서 다루고 있습니다. 크게 2가지 관점에서 이야기를 전개하고 있는데요, 해당 그림을 인용하자면 아래와 같습니다.
1. swf에서 다른 swf파일을 로드하는 경우

1. swf에서 다른 swf파일을 로드하는 경우

2. 서로 다른 영역에서 파라미터를 공유해야 하는 경우

2. 서로 다른 영역에서 파라미터를 공유해야 하는 경우


위의 문서에는 '1. swf에서 다른 swf파일을 로드하는 경우' 에서
  • url 을 통한 데이터 전달 (파라미터)
  • ApplicationDomain
'2. 서로 다른 영역에서 파라미터를 공유해야 하는 경우' 에서는
  • ExternalInterface를 이용하는 방법
  • LocalConnection을 이용하는 방법
들을 알아보고 있습니다. 이미 완성된 기술문서인만큼 서로간의 파라미터 주고 받기에 대해서는 더할나위 없이 탄탄한 내용이라 할 수 있겠습니다. 처음의 예를 들어주신 URL 뒤에 파라미터를 넣는 방법은 아주 유용한 방법입니다. swf 의 상호간의 파라미터전달 뿐만이 아니라 저 같은 경우에는 WebService나 HTTPService를 사용하는 Flex 어플에서 접속해야 할 서버주소를 파라미터를 통해서 지정하는 방법을 주로 쓰고 있습니다. 이 때 장점은 코드 내에 서버접속 주소를 하드코딩하지 않아도 된다는 장점이 있죠.

이 리뷰를 쓰게된 이유는 기술문서에서 언급하고 있지는 않지만 Flex에서 swf 파일을 로드한 경우 간편하게 swf에 접근할 수 있는 방법이 있기에 그 것을 언급하기 위함입니다. (물론 물질에 눈이 멀어서라는 이유도...) Flex에서 swf 를 SWFLoader를 통해 로드시, 해당 swf 가 ActionScript 3.0 으로 제작된 것이면 간편하게 SWFLoader 객체의 content 속성을 통해서 Flash 의 경우 MovieClip, Flex 의 경우 SystemManager 형태로 접근이 가능합니다.

Flash와 Flex 두 경우 모두 소개해보고자 합니다. 로드되는 swf 파일들은 동일하게 아래와 같이 간단하게 메소드를 제공하고 있습니다.

위의 코드에서 보이시는 myImage 라는 것은 Flex 의 경우 Image 객체, Flash 의 경우 MovieClip의 인스턴스명입니다. iconVisual 라는 속성을 통해 현재 myImage 가 visible 상태를 제어할 수 있게 됩니다. 위의 swf 를 로드하는 예제코드는 아래와 같습니다.



실제 결과물을 보시려면 이미지를 클릭하여주세요.
swf 경로명 관련, 티스토리에 직접 업로드가 힘들어 링크를 걸었습니다.

위의 코드에서 보실 수 있 듯
, Flex 에서 만든 swf 는 SystemManager 로 접근하게 되어 SystemManager 의 application을 불러온 swf 명으로 캐스팅 하여 해당 메소드에 접근하시면 되겠습니다. Flash 의 경우는 MovieClip 형태로 들어오게 됩니다. 직접 메소드를 호출하셔도 됩니다.
물론 메소드를 호출하고 있는 예제입니다만, 각 객체들을 직접 접근하시는 것도 가능합니다. 다만, 다른 개발자와 협업이 이루어져야 된다면 특정 메소드를 구현하기로 사전에 정해놓고 그대로 사용하는게 더욱 좋겠죠? ;)
여기서 살짝 짚고 넘어가야 되는 부분은 swf가 SWFLoader에 embed 되어있는 경우는 위의 방법대로는 사용이 안된다는 것입니다. (코드를 확인해보세요. embed 안되어있죠?) embed 시에는 MovieClipLoaderAsset 형태로 들어있기때문에 위의 방법으로 접근이 불가합니다. embed시에는 어떻게 해야되는지는 잘 모르겠네요 ;^(

안타깝게도 AS2.0 으로 제작된 swf 또한 위와 같은 방법으로 접근이 불가합니다. AS 3.0 부터는 기존의 AS1.0 및 AS2.0에서 사용되던 AVM(Actionscript Virtual Machine) 과는 다른 AVM 을 사용하고 있습니다. 이전버전의 AVM을 AVM1, AS3.0 이 실행되는 AVM은 AVM2 이라고 명명합니다. (물론 Flash Player 9 버전 이후부터는 AVM1, AVM2 가 둘다 포함되어 있습니다.) AS 1.0 이나 AS 2.0으로 제작된 swf 파일의 경우 Flex(AS 3.0) 에서 로드될 경우 AVM1Movie이라는 이름의 객체로 할당이 되게 되는데요, AVM1Movie 객체와 AVM2 객체 간에 호환성(메서드 호출 또는 매개 변수 사용 등)이 없기때문에, 접근이 불가한 것이죠.
이럴때에 기술문서에서 설명하여주신 LocalConnection을 사용하시면 되겠습니다. LocalConnection에 대해서는 기술문서에 충분히 자세히 설명하고 있으니 더 이상 언급은 하지 않겠습니다. ;)
또 다른 방법도 있는데요, Flash Interface라는 것이 있습니다. 저도 검색하여 찾은 것이라 자세한 내용은 패스~^^;


ps. 코드가 필요하신 분은 위의 swf 에서 마우스 우클릭하셔서 View Source 하시면 다운로드 하실 수 있습니다 ;^)
2008. 9. 1. 01:07
사용자 삽입 이미지
일전에 소개해드렸던 'Adobe FLEX 3 실전 트레이닝 북' 의 뒤늦은 리뷰입니다. 예약판매 중이었던 것을 발견하고 예약을 하려고 했으니 여차저차한 사정에 의해서 예약을 하지 못해, 마냥 궁금해 하고만 있었습니다.
이 책의 원서인 'Adobe Flex 3 Training from the Source'의 flex 2 시절 책인 'Adobe Flex 2 Training from the Source'를 PDF로 사다가 Flex 공부를 시작했던게 제 첫 Flex 입문이었죠. 그 후로 옥상훈님의 '예제로 배우는 Adobe 플렉스'가 나와서 '한글이라서 좋구나~' 신나하며 읽었던 기억이 나네요. 한글로 된 서적이 없어서 안되는 영어로 구글님께 비나이다~ 비나이다~ 하며 찾아보곤 했었는데 말이죠.
그래서 이번 'Adobe FLEX 3 실전 트레이닝 북'에 대해서 상당히 기대가 컸습니다. (예약안한건 뭥미..-_-)  월급받으면 10% 넘는 돈이 책값으로 지불되는 상황이어서 그 당시 돈이 없었습니다; 사야지~ 하고 생각만 하고 있다가 한 몇주 까먹고 지내는 상황이...

하지만 또 지성이면 감천(그게 무슨 상관)이라고 책을 퍼낸 위키북스에서 선물로 책을 보내주셨습니다. ;) 정말 감사드립니다. (덕분에 돈을 아꼈습니다. ㅜㅜ 개발서 너무 비싸요.. 먹고 살기 힘들 지경-_-)

제가 책을 받기 전에 강컴에 강력한 서평이 올라왔었습니다. 한마디로 '번역이 형편없다' 라는 거죠. 저도 ㅎㄷㄷ 하고 있던 참에 책을 받았는데 '-keep-generated-액션스크립트'는 스티커로 수정되어 있더군요. 아마도 'ActionScript' 라고 적힌 것을 기계적으로 일괄 수정하다가 나타난 문제였던 것 같습니다.
실제 악플에 가까운 서평이 올라왔던 것과는 달리 제가 읽기에는 번역 자체의 퀄리티는 대부분 무리없이 읽을 수 있는 평이한 수준이었습니다. 책의 앞과 뒤쪽의 용어들의 번역들이 좀 일치하지 않는 느낌이더군요. 역자가 한분이 아니여서 그런 듯. (조금은 아쉬운 생각이 들긴 합니다만, 번역서 출간에 대해서 제가 알고 있는 바로는 번역에 대한 비난에 씁쓸한 웃음만 나오더군요. 번역비가 많이 나와서 부자가 되는 것도 아니고, 그렇다고 번역의 질이 어떻니 하며 신경만 곤두서고 말이죠. 참... 안타까웠습니다. 거의 자원봉사의 수준이라고 하던데 말이죠.번역하실 분들이면 원서 읽기도 무리가 없으실 분들이 자원봉사정신이 없으시다면 번역서가 나올리가..아쉬울 것 없으실 분들일텐데. 영어 한줄도 더듬거리며 해석 겨우 해내는 제가 이런말 하는게 좀 우습네요 ^^)
부분적으로 애매한 설명 같은 것은 수정을 좀 하셔서 차후에 다시 책을 찍을 때 반영이 되었으면 좋겠네요. 베타리더도 적극 도입하시면 좋겠습니다.

아무튼, 책 내용은 많은 분들이 말씀하신대로 참 좋습니다. Flex의 전체적인 것(레이아웃부터 FDS까지)을 설명하고 있기 때문에, 입문자에게 개념정리로써 상당히 도움이 될 듯합니다. 예전 Flex2 버전은 영어버전으로 공부했더니 이해를 잘못하고 있던 부분이 많았는데, 한글서적이라 참 좋네요 ㅎ Flex 3용으로 나오면서 추가된 여러가지 내용들도 참 쉽게 이해할 수 있었습니다.
좀 더 이미지가 많았으면 하는 생각도 했습니다. 텍스트로 서술되어 있는 경우가 많아 열심히 읽어야됩니다. ;)  조금 답답하다 할까요. 크게 문제될 부분은 아닙니다.
각각 실습시간이 나와있어서 또한 재미있습니다. 추후에 사내 Flex 관련 스터디가 진행된다면 이 책으로 하면 참 좋을듯.

제가 일전에 Flex ACE를 취득했는데, 이때도 참 달게 잘 보았습니다. 예를 들면 시험에 CSS부분에서 Type selector와 Class selector 에 대해서 나오는데, 처음보고는 이게 뭐지.. 하는 생각만 들더라고요. 용어가 너무 생소한 느낌이랄까요. 분명 개발할때 쓰고 있는데 말이죠. 그래서 저처럼 ACE를 취득하려고 준비하시는 분들께도 추천해드립니다. 꼭 한번 정독하시면 좋습니다. ;)


AIR in Action번역서가 나올 예정이라고 합니다. 9월 안(아마도 추석 전후..)에 나온다고 하는데요. 기대 완전 하고 있습니다. ;)
사용자 삽입 이미지

표지가 나왔네요 ;)


저도 책 한권 써볼까 싶은 생각이 절로 납니다 ;)
2008. 8. 23. 18:00
Flex ACE 를 보려고 마음먹은지는 이미 올해 초 였습니다. 올해 목표중에 하나였거든요. 미루고 미루고 미루다 드디어 시험을 치뤘습니다. 요전에 이벤트로 시험 50% 할인 바우쳐도 받기도 해서 시험치기는 최상의 조건이었습니다만, 이놈의 귀차니즘이 가장 문제. ㅡㅡ;

차일피일 미루다가 유주상님께서 올리신 글 'Adobe Certified Expert 헤트트릭(hat trick) 달성' 에 완전 자극받고 있던 참에, 열이아빠님께서 '자격증만으로 몸값이 올라갈까요' 라는 글로 제대로 다시 뽐뿌를 주시는 바람에 뭔가에 홀린듯 접수를 하고 말았습니다.
Pearson VUE 에서 접수해서
결국 오늘(2008년 8월 23일) 강남에 있는 중앙컴퓨터학원에서 시험을 쳤습니다. (기계철인은 안해주시더군요 ㅜㅜ) 요즘 Pearson 에서 접수하면 $80에 접수 되어서 50% 할인받아 $40에 쳤습니다. (거저네요 거저 원래 $150인데 ㄷㄷ)

공부안하고 셤 쳤더니 점수가 ㄷㄷ

공부안하고 셤 쳤더니 점수가 ㄷㄷ


열이아빠님이 말씀하신대로 한글로 쳤더니 이해가 안되는 부분이..; 하지만 전 영어가 쥐약이므로 걍 한글로 쳤습니다. ㅡㅡ;  시험도중에 살짝 당황했던 부분도 있었는데요, UML 관련 문제에서 UML이 안보이는 겁니다. 그림같은 것은 시험 프로그램 하단의 '게시' 버튼을 눌러야 출력이 되더군요. 상당히 당황했었습니다;
시험시간은 모자라지는 않았고요, 시험 종료 40분 전쯤에 나온듯 하네요. 묘한 문제들이 몇 개 있어서 당황스럽기도 했고, 모르는 문제도 있더군요; 반성중입니다.;

아직 어도비쪽으로 데이터가 가지 않았는지 ID는 나왔는데 인증 커뮤니티에 인증이 안되네요. 월요일쯤 다시 해봐야겠습니다.  근데 이제 ACE 로고 블로그에 박아도 되는지 모르겠네요 ㅎㅎ
방금 인증을 했습니다.(2008. 8. 25.) 그간 사이트가 문제가 있었는지 에러메세지만 출력해대더라고요. 인증페이지에서 살짝 의아했던 것이 History 에서 엄청난 리스트가 쌓여있더군요. 뭔가 했더니 (9A0-310) Flex 2.0 Developer Exam에 합격하였더니 그와 관련된 여러 자격들에 등록되어 있다는 메세지가 주루룩~


 
ACI(Adobe Certified Instructor)가 엄청 관련되어 있더군요. ACI는 엄청 세분화 되어있는 모양입니다. Adobe의 공식교제의 각 권에 대한 강의 자격을 따로 부여하는 것 같네요. 뭐 강의를 할 능력은 안됩니다만 ;^(
위에서 링크걸었던 유주상님의 글과 열이아빠님의
Flex 3 ACE 살짝 정보 에서도 언급되어 있습니다만, ACE(Adobe Certified Expert) 중에 전문가(Specialist)라고 지칭되는 인증이 있는데요, Flex 2 시험과 연관되는 전문가(Specialist) 등급이 2가지가 있네요.

하나는 이미 링크를 보셨으면 아실듯한 Rich Internet Application Specialist 고요,
Rich Internet Application Specialist

하나는 Web
Specialist 입니다.
Web Specialist



이미 Flex ACE 를 취득하신 분들이 많이 있습니다만, 시험정보를 찾기가 힘들더군요. 시험 힌트를 주신 에이레네님 감사드립니다. ;) 
Flash도 공부를 열심히 해서 Rich Internet Application Specialist 도 노려볼 생각입니다. ;) (시간이 허락된다면 CF도 ~ 이건 장창학님 괴롭혀야되는건가요...) 거기다 Dreamweaver 까지 취득하면 Web Specialist 는 덤으로~ㅎㅎ

악재중에 겨우 찾아온 호재군요. ㅜㅜ

'주절주절' 카테고리의 다른 글

동원훈련 다녀오겠습니다아-  (22) 2008.09.22
Flex ACE 자격증 도착!  (28) 2008.09.11
대참사!!! 큰일입니다!!!  (20) 2008.08.18
egg 님께서 선물을 보내주셨어요~ 잇힝~(+_+)/  (2) 2008.07.31
Adobe Flex 개발자 인터뷰  (15) 2008.06.08