Whiteship's Note


플렉스 컴폰넌트와 샘플 코드

Adobe : 2010.02.07 15:34


http://www.adobe.com/devnet/flex/tourdeflex/web/#docIndex=0;illustIndex=0;sampleId=100


오호.. 액션 스크립트를 MXML에 <mx:script> 를 사용하여 포함시킬 수도 있군요. 저기서 예제 코드들을 참조하면 될 것 같습니다.

JQuery 사이트에 있는 예제 코드들도 유용하게 참조해서 썼는데.. 플렉스도 비슷한 페이지가 있네요.
top

Write a comment.


난 뉴스보다 기술에 더 관심이 많은 것 같다.

모하니?/Thinking : 2010.02.05 12:36


요즘 어도비 플렉스 기술에 살짝 관심을 가지기 시작했는데 이유는 Comet 또는 Revers Ajax라 부르는 기술 때문이다.

페이지를 가만히 띄워놓고 있지만 그 내부의 데이터는 시시각각 변하기 마련이다. 극적인 예를 들자면 '경매'나 '주식'이 그렇다. 하물며 봄싹 사이트는 안그런가. 이번 주 스터디 모임에 대해 어떤 댓글을 달렸을지 궁금해서 F5키를 연타해보곤 한다. 이 얼마나 귀찮은가. 그냥 한쪽 탭에 띄워놓고 다른 일 하다가 다시 그쪽 탭을 보면 새로 등록 된 댓글이 보이면 되는데 왜 내가 귀찮게 F5키를 눌러줘야 하는건지 말이다. 게다가 실시간 데이터가 가장 중요한 '이벤트' 들은 완전 F5키의 전쟁이다. 1초 아니 1밀리초라도 더 빨리 해당 시간에 들어가서 쿠폰이라도 어떻게 받아볼까.. 인기 교양 과목 하나라도 건져볼까.. 미친듯이 F5키를 눌러대던 학창 시절의 추억까지도 지져분하게 느껴진다. 그냥 얌전히 기다리고 있으면 제시간에 브라우저에 <시작> 이라는 문구만 떠주면 그런 손가락 노가다 따위는 안해도 될텐데 말이다.

그래서 난 사용자들이 좀 더 의사소통을 신속히 그리고 얌전히 할 수 있도록 Comet이니 Revers Ajax같은 기술이 필요하다고 생각했다. 험블 프로그래머님이 번역하신 책도 읽어봤고 서블릿 3.0 스팩도 보고 HTML 5 스팩도 대충 살펴봤다. 이미 나름대로의 Comet용 서비스를 제공하는 제티, 톰캣의 구현체도 살펴봤다. Dojo와 Bayuer(배여?)까지고 들락 거려봤지만 쉽지 않아 보였다. 서버 쪽에서 해줄 일도 보통이 아니고 클라이언트 쪽에서 해줄 일도 보통이 아니다. 나름 빠져들면 재밌을 것 같다는 생각도 들었다. 하지만 당장은 야크 쉐이빙에 빠져들 여력이 없다.

그러던 중 갑자기 어도비에서 메일이 왔다. 이게 왠 일. '난 자바 개발자인데 왠 플래시??' 라고 생각하던 중에 문뜩 떠올랐다. 그래. 차라리 플래시로 하면 더 간단하지 않을까? 어차피 사용자는 그게 코멧이던 플래시던 뭔 상관이겠어. 그냥 실시간으로 데이터만 후딱 보여주면 그만이지.

그래서 플랙스라는 걸 공부하고 있는데... 요즘 ipad를 발표한 스티브 잡스가 플래시 플레이어 코드가 더럽다고 애플 휴대용 제품들에서 지원하지 않겠다니 어쩌니 했나보다. 그래서 어도비에서도 그에 대한 반응으로 글을 올리고 어쩌구 저쩌구 했나본데... 

안하면 어떻고 하면 어떤가.. 안하면 아이폰 유저들은 웹 사이트에 뜨는 플래시가 안돌아가 가니까 불편을 느낄테고 아이폰 개발자들도 귀찮아 질테고 그럼 안드로이드만 신나는거 아닐까? 뭐 어차피 개발 플랫폼도 안드로이드가 편하다고 하니... 뭐.. 몰겠다. 난 그쪽 전문이 아니라 @_@;;

솔직히 난 저런거에 하나도 관심이 없다. 난 아이폰 개발자도 아니고 플래시 개발자도 아니고 스프링 하이버에 관심은 있지만 스프링이 VMWare에서 나와서 개빈킹이랑 손잡고 JBoss에 들어가서 '씸스프링'을 만들던 말던 내가 스프링 직원이나 하이버 직원이 아닌 이상 뭔 상관인가... ('씸스프링'이 나온다면 그거에 관심은 가겠지만..)

난 그냥 빨리 플랙스 기술을 익혀서 내가 원하는 서비스를 만들고 싶을 뿐이다.
top

TAG 어도비
  1. Favicon of http://blog.lckymn.com BlogIcon Kevin 2010.02.05 22:55 PERM. MOD/DEL REPLY

    안드로이드도 플래쉬 안 돌아가더군요...ㅡ_ㅡ;;;
    아... 다른 제품은 모르겠는데,
    제가 쓰는 제품의 안드로이드 1.5 버전에서는
    지원 안 하는군요.

    애플에서 기술적인 이유로 핑계를 대고는 있지만,
    사실 뭐 이유야 많겠죠.
    기술적으로 CPU 파워를 너무 사용하는 소프트웨어쪽 가속
    때문에 배터리 소모가 심하다는 등의 이유는 차치 하고라도,

    애플에서 통제 불가능한 application 에 대해 환영할리 만무합니다.
    플래쉬가 돌아간다는 얘기는 아이폰 앱스토어를 거치지 않아도,
    플래쉬를 이용해서 만든 수많은 application과 game 들을
    사용자가 마음대로 이용할수 있다는 얘기가 되기 때문에,
    이런데서 오는 아이폰 앱 스토어의 수입감소는 물론,
    통제불능 app 들로 인한 보안문제나 기타 등등...

    이런 저런 이유로 앞으로도 힘들것 같습니다.
    server push는 대안 기술이 점점 늘어나고 있고,
    애플이 HTML5를 밀고 있는데다가
    구글도 그렇죠... 이미 Google Wave 를 HTML5를 이용해서
    제작하고 있고... 그래서 그런지
    여기저기서 플래쉬는 시한부 라는 얘기가 많이 나오고 있네요.

    개인적으로는, 리눅스에서 돌아가는 플래쉬는
    그 성능이 엄청나게 형편없기 때문에...
    별로 좋아하지는 않습니다만...
    인기도가 떨어진다고 해도, 근시일안에 사라지지야 않겠죠.


    사실 저도 sever push 기술에 관심이 있어서 좀 알아본적이 있는데,
    당장은 시간이 없어서 일단 polling 정도 쓰고,
    다음번에는 Tomcat이나 Jetty의 comet 지원이나
    HTML5 를 사용해 볼까 하고, 생각하고 있습니다.
    Servlet 3.0 에는 comet 관련된 부분도 추가된거 같은데,
    Servlet 3.0 지원하는, Tomcat 이나 Jetty 의 새버전이 나오면
    바로 갈아타는 방법도 있을것 같구요.

    그게 아니라면, Flex나 Silverlight JavaFX 같은걸 쓸수도
    있겠는데, 플래쉬야 워낙 대부분의 브라우저에 깔려 있어서
    그렇다 쳐도 나머지 두개는 사용자들이 따로 뭘 설치해야하는데다가,
    Silverlight는 MS기술이라 좀 믿음이 안 가구요...ㅡ_ㅡ;
    JavaFX는 이번에 오라클에서 지원을 많이 할것 같긴합니다만...
    거기에 뱅쿠버 올림픽 웹사이트에 사용되고 있기도 하구요.
    http://www.vancouver2010.com/olympic-medals/geo-view/
    그래도 아직 초기 단계라 좀 많이 부실해 보이구요.
    거기다가 아직 64bit OS는 지원을 안 하는거 같아서...

    일반 사용자 입장에서 보면 뭐하나
    더 설치하는게 부담이 될수 있어서, 그런게 아닌걸 찾다보니...
    뭐 사용자층이 컴퓨터 관련 지식이 좀 있다면,
    기술 고르기가 좀더 수월해 지겠지만요.

    어쨌든 제 바람은...
    HTML5 가 하루빨리 정식으로 세상에 나왔으면, 좋겠네요. :)

    기선 2010.02.06 00:11 PERM MOD/DEL

    아... 플래쉬와 애플과는 그런 이해관계과 문제들도 있었군요. @_@;;

    제 바램도 어서 HTML5와 Servlet 3.0이 나와주면 좋겠어요.

    하지만 마냥 기다리고만 있을수도 없는 노릇이구..흑흑;; 어떻게든 개념적인 기술을 적용하자니 구체적인 기술이 조금있으면 더 좋은 것으로 교체 되야 할 것 같고... 기다리자니 참... 헛헛하고... @_@;

  2. Favicon of https://helols.tistory.com BlogIcon is윤군 2010.02.05 23:57 신고 PERM. MOD/DEL REPLY

    일단 당장... 우리가 코멧서버 프로젝트를 안하고... 봄싹에 적용하고 싶다면... jetty를 이용한 .. comet 서비스를 적용하자구용!! 물론.. js 로 1분에 한번씩 request를 날릴수도 있겠지만..;; 그것보단은 약간 진보? 한 기술이니...

    나름 spring의 설정을 jetty설정을 하고... tomcat이 구동 될때 ... 자동으로 jetty도 구동되고.. tomcat랑 같은classloader 위에서 jetty가 구동되서 ... 나름 관련 lib도 따로 추가 해줄필요도 없고... ;;

    다만 아직 좀 문제라면 tomcat과 같은 세션을 바로 볼 수 있는 방법만 찾는다면..(아직 찾아보진 않았지만 나름 아이디어도 존재하는 마당이고..)jetty + tomcat을 하나로? 쓰는 그런 맛? 머;;; 그럭저럭... 쓸만 할것 같아요... flash의 힘을 빌리느니 말이죠.. ;;
    이건 내일 서버 정리하면서... 이야기 해보면 좋을듯;;ㅎㅎㅎ
    (뭐 아직까지 comet에 대한... 욕심이 남아있어서 그럴줄 모르지만..ㅎㅎ)

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2010.02.06 00:15 신고 PERM MOD/DEL

    내일 할 일과 할 얘기가 너무 많은거 아냐? ㅋㅋ

    흠... 위 댓글에도 적었지만 정말 고민이다. 그렇게까지 하면서 서버 푸쉬를 구현해야 하는것인가? 그냥 맘편히 지원되는 표준 나올때까지 기다리다가 그때가서 구현할 것인가...

    난 게을러서 그런지 후자가 편할 것 같어.. @_@;

  3. Favicon of http://blog.lckymn.com BlogIcon Kevin 2010.02.06 10:34 PERM. MOD/DEL REPLY

    기술적으로 더 나은 기술과, 현재 상황을 고려했을때 최선의 선택인
    기술에는 분명 차이가 있을껍니다.

    현재 Flex를 선택했을때의 장점과 단점
    Comet을 선택했을때의 장점과 단점을 비교해서
    고르시면 되지 않을까 싶군요.

    Flex의 장점은 Comet을 쓰는거보다 더 쉽게 sever push가
    가능하다는것이겠고, 요즘은 대부분의 브라우저에
    플래쉬 플레이어가 깔려 있다고 해도 과언이 아닐 정도로
    사실상 표준인 기술이구요.
    단점은 새로운 언어 습득과 표준 기술이 아니라서
    플러긴을 설치해야 한다는 점인데, 후자는 어차피
    사실상 표준이라는 장점 때문에 대부분 깔려 있다고 봐야겠죠.

    Comet의 장점은 사용자가 따로 뭘 설치할 필요가 없다는 것이겠고,
    단점은 구현이 Flex 사용보다 많이 복잡해 질수 있다는게
    아닐까 싶군요.

    그럼, Flex를 공부하고 구현하는데 드는 시간과
    Comet을 공부후 구현하는데 드는 시간을 비교해서
    잘 생각해 보시면 답이 나오지 않을까 합니다.
    (단순 구현이 아니라, 여러가지 상황에 대한
    테스트까지 고려되어야 하겠죠. 가령 concurrency 문제라던가
    메모리 사용량에 대한 문제라던가...)

    플래쉬를 썼을때, 아이폰이나 기타 다른 스마트폰에서
    정상적으로 동작하지 않는거야...
    어차피 이쪽에 최적화 시켜서 모바일 전용
    페이지를 따로 만들면 되겠죠.
    보통 그렇게 많이 하고 있고,
    그렇게 하는것이 더 나은것 같네요.
    화면 크기도 그렇고, 일반 웹페이지를 그냥
    폰에서 보면 많이 불편하니까요.

    그래서 구글이나, 위키페디아 (심지어 제 블로그도 :) ) 같은곳은
    모바일용은 다른 화면을 보여주죠.

    (그리고 자동으로 데이터 갱신하는걸 사용자가
    원하지 않을 가능성도 높져. 모바일 데이터 통신
    요금이나 인터넷 속도 등등의 이유로 말이죠.)

    아무튼 그래서 Flex 사용도 나쁜생각 같아 보이지는 않습니다.
    이게 지금 사라진 기술도 아니고, 오히려 인기가
    굉장히 많은 기술이고 널리 쓰이는 기술이라서...
    지금 이거 쓰다가 나중에 다른걸로 바꿔도 어차피
    사용자들은 눈치 못챌 가능성이 높겠죠.

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2010.02.07 10:43 신고 PERM MOD/DEL

    넹 요즘은 모바일 용 웹까지도 개발해야되니 고려할 것이 많군요.

    일단은 재미 삼아서라도 flex로 어느 정도 개발 가능한 만큼만 공부해보려구요.ㅋ

  4. Favicon of http://starplatina.tistory.com BlogIcon 김제준 2010.02.18 23:20 PERM. MOD/DEL REPLY

    헙..
    플렉스 안만진지 1년이 훨씬 넘었네요.
    처음에 할땐 재미 있었는데 ㅋㅋ.

    플렉스 서버 push가 블레이즈ds에서 됬었던가요??
    한 2~3년 전에 lcds라이센스 연구실에서 샀던게 천만원 좀 넘었던거 같던데..
    요즘엔 얼마나 할려낭 ㅎㅎ

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.19 06:29 PERM MOD/DEL

    ㅋㅋ저도 이 뒤로는 손을 안댔네요.

Write a comment.


[Flex] "Hello, Flex" with IntelliJ IDEA

Adobe : 2010.02.02 11:55


참조: http://www.adobe.com/devnet/flex/videotraining/xml/vid03.html

모든 언어나 프레임워크를 공부할 때 가장 먼저하는 일이 단순 메시지 출력인데 플렉스 강좌를 보니까 이클립스 기반의 플렉스 빌더를 가지고 설명하고 있습니다. 하지만 저는... 이클립스에 질려버렸고 요즘은 똑똑한 인텔리J랑 사이좋게 지내고 있기 때문에 인텔리J로 강의를 따라하고 있습니다.

이클립스를 사용하시는 분들은 플렉스 빌더를 받아서 위 동영상을 따라하시면 될 듯...

이 아래는 인텔리J에서 헬로우 Flex를 띄우는 과정입니다.

1. Flex SDK 다운 받기

http://opensource.adobe.com/wiki/display/flexsdk/Downloads

여기서 오픈소스가 필요하지 않다면 그냥 Free Adbove Flex SDK를 받습니다.
압축을 풀어서 적당한 위치에 놓고..

2. 인텔리J에서 Flex 프로젝트를 만듭니다.



3. 실행하기

3-1. Run Configuration을 만듭니다. MXML 파일을 우클릭하고 Create "HelloWorld" .. 메뉴를 클릭합니다.


3-2. 실행합니다.

사실 3-1 건너띄고 바로 실행해도 됩니다. 실행하면 SWF 파일이 열리고 버튼이 떠있고 클릭하면 메시지가 나옵니다. 메시지를 조금 수정해서 hello flex를 띄울 수 있습니다.

Run Configuration 파일을 열어서 SWF 파일말고 wrapper.html 파일을 선택한뒤 실행하면 자동으로 브라우저에 새 탭을 열고 SWF 파일을 브라우저에서 재생해 줍니다.

http://www.adoberia.co.kr/


팁. Flex 만드는 도중에 Pure ActionScript 어쩌구 메뉴를 체크하시면 MXML이 아니라 액션스크립트로 작성된 HelloWorld 예제를 볼 수 있습니다. 동작하는 방법은 그냥 단순 출력이라 이전거랑은 좀 다릅니다.

package {

import flash.display.Sprite;
import flash.text.TextField;

public class HelloWorld extends Sprite {
    public function HelloWorld() {
        var textField:TextField = new TextField();
        textField.text = "Hello, World";
        addChild(textField);
    }
}

이런 코드네요. 흠.. 자바랑 비슷해 보이면서도 뭔가 좀..  변수 선언할 때 타입이 아니라 이름부터 적는군..


ps: 흠.. 다른 웹 애플리케이션과는 어떻게 연동해야하려나;; 차차 나오겠지;?




top

Write a comment.


플래시, 플렉스, 플래시 플레이어, 에어(Air) 비교

Adobe : 2010.02.01 12:54


참조: http://www.adobe.com/devnet/flex/videotraining/xml/vid01.html

Flash: Fl

비두얼 툴과 타임라인을 사용하여 애플리케이션 레이아웃과 액션스크립트를 만든다.

플래시가 액션스크립트를 컴파일하여 SWF 파일을 만든다.

애니메이션과 비주얼 엘리먼트를 작성하는데 최적화 되어있다.

Flex: Fx

비주얼 컴포넌트와 클래스로 구성되어 있는 프레임워크를 제공하며, 비주얼 레이아웃에 사용할 MXML과 비즈니스 로직에 사용할 액션스크립트 프로그래밍 언어를 제공한다.

MXML과 액션스크립트 코드를 액션스크립트로 변환한 뒤 SWF 파일로 컴파일 한다.

Adobe Flex SDK 오픈소스로 제공한다.

Adobe Flex Builder는 SDK를 포함하고 있으며 디자인, 개발, 테스팅을 원할하게 도와준다.

=> 플래시와 플렉스 모두 사용자가 서버에 요청을 하면 동적으로 데이터를 가져와서 다시 사용자에게 보여줄 수 있다.

=> 이 둘을 같이 활용하여 플래시로 애니메이션을 만들고 플렉스로 가져와서 컴파일/편집 할 수 있다.

Flash Player

플래시나 플렉스 애플리케이션을 브라우저에서 보려면 플래시 플레이어 9 런타임이 필요하다.

AIR

어도비 에어는 데스크탑 애플리케이션 용 어도비 런타임이다.

브라우저가 아니라 데스크탑 애플리케이션으로 동작하는 RIA(리치 인터넷 애플리케이션)를 만들 수 있다,


http://www.adoberia.co.kr/
top

TAG 어도비
  1. Favicon of http://helols.pe.kr BlogIcon is윤군 2010.02.01 15:54 PERM. MOD/DEL REPLY

    왠 갑자기 flash ? '';;

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.01 16:00 PERM MOD/DEL

    플렉스나 좀 봐보게..

    Comet이 쉬운가 플렉스가 쉬운가;;

  2. Miracle 2010.02.01 16:27 PERM. MOD/DEL REPLY

    플렉스는 진짜 Push가 가능하지.. 소켓 열어서.. ㅎㅎ;

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.01 16:46 PERM MOD/DEL

    괜히 (현재의) Servlet 스펙으로 안 되는거 되게 하려고 복잡해지느니.. 애초에 가능한 기술로 해보는게 나을지도 몰겠단 생각에...

  3. Favicon of http://helols.pe.kr BlogIcon is윤군 2010.02.02 14:38 PERM. MOD/DEL REPLY

    플레쉬 소켓을 이용한건...
    comet으로 안쳐주는데;;ㅎㅎ

    Favicon of http://whiteship.me BlogIcon 기선 2010.02.02 15:01 PERM MOD/DEL

    그럼 Comet 말고 걍 플래시라고 하지뭐.
    사용자 한테 그게 Comet이던 플래시던 뭔 상관이겠어ㅋㅋ

Write a comment.