저자명 : 체이픽 커준, 조이 로트 역자명 : 김지원 출판사 : 도서출판 ITC 정 가 : 35,000원 ISBN : 978-89-6351-005-7 원서명 : Programming Flex3 : The Comprehensive Guide to Creating Rich Internet Applications with Adobe Flex 출간년월 : 2009 년 3 월 페이지 : 772 쪽 크기 : 세로 : 254, 가로 : 188, 반양장
“체이픽과 조이는 진정한 플렉스 전문가로서 개발에 필요한 귀중한 신구 자료를 이 책에 담았다” - 매트 코틴, 어도비 시스템즈 선임 Flex 마케팅 과장
어도비 플렉스 3로 리치 인터넷 애플리케이션(RIA)을 개발해 보려는 사람에게 이 책은 좋은 길잡이가 된다. 이 책을 정독하고 실습해 보면 플렉스 3의 핵심 개념을 확실히 이해할 수 있으며, 특정 플렉스 기능들의 사용 적기와 그 이유를 간파하게 된다. 무료 플렉스 SDK를 이용하여 완벽하고 기능적인 웹 애플리케이션을 제작하고 어도비 AIR를 이용한 데스크탑 RIA를 제작하는 방법들을 보이는 다수의 예제와 샘플 코드가 들어 있다. 이 책을 어도비 플렉스 3 공식 참고문서와 병용한다면 매우 이상적인 학습 효과를 거둘 수 있다. 이 책에서 다루는 내용은 다음과 같다.
• 플렉스 프레임워크에 대한 기본 개념 • MXML과 액션스크립트를 사용한 프로그래밍 • UI 컴포넌트의 구조와 레이아웃 • 미디어 활용의 다양한 정석 • 애플리케이션과 컴포넌트의 스테이트 관리 • 전이와 이펙트 사용 비법 • 플렉스 애플리케이션 디버깅 • 웹 브라우저에 플렉스 애플리케이션 삽입 • 데스크탑용 AIR 애플리케이션 제작
플렉스 3 하나로 개발자는 RIA 개발에 있어 웹과 데스크탑이라는 두 마리 토끼를 잡을 수 있다. 이 책의 내용을 체계적으로 이해하고 훈련하면 위에 나열한 복합적이고 강력한 기술을 완벽에 가깝게 섭렵할 수 있다.
Chapter 1 플렉스 기초 플렉스 애플리케이션 기술 1 플렉스 구성요소 이용하기 8 데이터 서비스 작업(런타임에 데이터 로딩) 10 기존 HTML과 플렉스 웹 애플리케이션의 차이 11 플렉스 애플리케이션의 원리 13 플렉스와 플래시 저작의 개념 14 플렉스 1.5와 플렉스 2에 대하여 15 핵심정리 17
Chapter 2 플렉스 프레임워크로 애플리케이션 제작 플렉스 도구 모음 이용 19 프로젝트 생성 22 애플리케이션 빌드 26 애플리케이션 디플로이 41 핵심정리 42
Chapter 10 프레임워크 유틸리티와 고급 컴포넌트 개념 툴팁 281 팝업 289 커서 관리 298 드래그 앤 드롭 300 리스트 기반 컨트롤 사용자 정의 310 포커스 관리와 키보드 제어 323 핵심정리 330
Chapter 11 미디어 작업 미디어에 대한 이해 331 미디어 삽입 335 다양한 미디어로 작업하기 342 핵심정리 358
Chapter 12 스테이트 관리 스테이트 생성 360 스테이트 적용 361 기존 스테이트의 하위 스테이트 정의 363 컴포넌트 추가와 제거 365 프로퍼티 지정 369 스타일 지정 369 이벤트 핸들러 지정 371 액션스크립트로 스테이트 정의 372 객체 생성 방식 관리(객체 프리로딩) 385 스테이트 이벤트 처리 388 스테이트 수명주기 389 핵심정리 396
Chapter 13 이펙트와 전환 이펙트 사용하기 398 사용자 정의 이펙트 생성 419 전환 사용하기 427 사용자 정의 전환 생성 434 핵심정리 434
Chapter 14 데이터 작업 데이터 모델 이용 436 데이터 바인딩 451 사용자 정의 클래스에 데이터 바인딩 가용화 463 데이터 바인딩 사례 468 데이터 바인딩 프락시 클래스 제작하기 472 핵심정리 476
Chapter 15 데이터의 유효성 검사와 형식화 사용자 입력 내용 검사 477 유효검사기 사용 478 표준 프레임워크 유효검사기 사용하기 494 사용자 정의 유효검사기 작성하기 500 데이터 형식화 502 NumberFormatter 503 DateFormatter 505 CurrencyFormatter 506 PhoneFormatter 506 ZipCodeFormatter 507 사용자 정의 포매터 작성하기 507 핵심정리 509
Chapter 16 클라이언트 데이터 통신 로컬 연결 512 영구 데이터 518 호스트 애플리케이션과 통신하기 533 핵심정리 539
Chapter 17 원격 데이터 통신 다양한 데이터 송수신 기법 542 요청/응답 데이터 통신 기법 544 웹 서비스 560 실시간 연결과 소켓 연결 573 파일 업로드와 다운로드 574 핵심정리 576
Chapter 18 디버깅 플래시 디버그 플레이어 577 FDB 사용 582 플렉스 빌더로 디버깅 584 원격 디버깅 588 trace()를 이용한 로그 기록 590 로깅 프레임워크 592 원격 데이터 디버깅 597 핵심정리 599
Chapter 19 사용자 정의 컴포넌트 제작 컴포넌트 프레임워크 개요 601 컴포넌트 수명주기 603 컴포넌트 구현상속 607 사용자 정의 프로퍼티와 이벤트 넣기 617 스타일 지정 기능 넣기 620 핵심정리 624
Chapter 20 브라우저에 플렉스 애플리케이션 삽입 HTML에 플렉스 애플리케이션 삽입 625 브라우저 버튼 통합과 딥 링크 639 플래시 플레이어 보안 654 런타임 공유 라이브러리 이용하기 657 핵심정리 666
Chapter 21 AIR 애플리케이션 제작 AIR 기초 667 AIR 애플리케이션 제작 668 AIR의 각종 기능 이용하기 672 AIR 애플리케이션 배포 700 핵심정리 704
Chapter 22 플렉스 애플리케이션 제작 샘플 애플리케이션 소개 705 새 프로젝트 설정 709 청사진과 마이크로아키텍처 이용 716 공통적 패턴 뽑아내기 718 핵심정리 732
2004년도가 떠오른다. 그 해는 그리스에서 올림픽이 개최됐던 때다. 유가는 배럴당 50달러 넘게 상승했으며, <왕의 귀환>이 오스카상을 휩쓸었다. 레드삭스가 월드 시리즈에서 우승했고, 세렌디브 소쩍새가 스리랑카에서 처음 발견됐다. 끝내주는 해였구만! 음, 뭐 나도 이건 최근에 위키피디아에서 베낀 거지만. 아무튼 2004년은 그 소쩍새들에겐 굉장한 한 해였지 싶고, 나 또한 인터넷 애플리케이션에 있어 굉장한 한 해였다. 2004년이 바로 플렉스가 탄생한 해니까.
그 엄청 짧은 몇 해 만에 수많은 것이 바뀌었다. 플렉스 1은 매우 배타적이며 플렉스 1로 작성한 애플리케이션은 서버에 구속됐다. 값비싼 라이선스가 필요했으며 유용한 자료가 매우 희귀했다. 플렉스 1.5는 애플리케이션과 서버 간의 굴레를 끊었다. 문득 주요 플렉스 애플리케이션을 작성하거나 디플로이할 수 있는 사람도 있었겠지만 그 당시 대부분의 사람은 아직 플렉스의 존재조차 들어 본 적이 없는 상태였다. 플렉스 2가 출시되자 업계가 기를 쓰고 RIA 개발자의 정의를 정립하려 했던 시점임에도 실제로 리치 인터넷 애플리케이션(RIA) 개발자들의 플렉스에 대한 인지도가 약간 향상됐다. 플렉스의 인지도는 갈수록 높아졌고 급기야는 SDK를 무료로 배포했다. 업데이트 버전 2.0.1이 출시될 무렵 플렉스는 디자이너, 개발자, 소위 디바이너(디자이너 겸 개발자), 그 희귀하다는 세렌디브 개발자들로부터 지지받기에 이르렀다.
이제 플렉스 3가 나와 있고 이는 지금껏 가장 완전하고 사용성이 높은 버전이다. 프로파일러, OLAP, CS3 통합, 리팩터링, 프레임워크 RSL, 딥 링크, 에이잭스 브리지, 서버용 코드 생성, 자동화, 그 외에도 여러분이 꿈꿔 온 모든 것이 가능해졌다. 그리고 혹시 그 선물상자 안에 없는 것이 있더라도 프레임워크, 3D 라이브러리, 맵, 매시업, 설정자, 대시보드, 모니터, 위젯 등 커뮤니티에 구하면 모든 것을 얻을 수 있다.
하지만 그 모든 새로운 특징과 기능들 중 플렉스 3에 들어서 가장 크게 변한 것은 무엇일까?
뭐 그게 비록 새로운 기능이라든지 리팩터링된 API랄 순 없지만, 휘황찬란하거나 싸구려인 것은 아니다. 멋진 새 ‘입문 경험 쌓기’도 역시 아니다. 플렉스 3의 가장 큰 변화를 진짜로 확인하려면, 자리에서 일어서서 거실을 지나 화장실로 간 후 벽에 붙은 거울을 바라봐야 한다(물론 화장실 들어가기 전엔 얌전히 노크도 해야 할 테고). 플렉스 3에서의 가장 큰 변화는 바로 여러분이다. 그게 정답인 걸. 플렉스 3에서는 여러분과 나 또는 오픈소스인 플렉스 SDK에 기여할 수 있는 모든 이들이 가장 큰 변화다. 짐승의 배를 찌를 수도 있고, 비장을 꼬아버릴 수도 있으며, 꿰매버리거나 전혀 다른 새 짐승으로 탈바꿈시킬 수도 있다. 이 모든 게 여러분 손에 달려 있다. 텍스트 편집기와 인터넷 접속만으로도 충분히 플렉스라는 선도적인 RIA 기술에 동참할 수 있는 것이다.
그렇다면 이 책의 적합한 용도는 무엇일까? 내가 기존 플렉스 3 제품의 문서를 보니 2,300페이지가 넘는 분량의 내용과 거의 1,200개 가까이 되는 예제 애플리케이션이 들어 있다. 그중 내가 작성해 본 코드는 몇 개밖에 안 되며, 혹시 여러분이 컴파일러 오류가 난다고 나를 들볶더라도 난 발뺌하겠다. 더군다나 이 책에는 개발자 문서에 추가로 들어 있는 실 페이지 수천 장 분량의 언어 참고서도 포함돼 있지 않다. 그렇다면 그 많은 참고 콘텐트가 이미 존재하는데 굳이 따로 이 플렉스 3 서적을 봐야 하는 이유는 무엇일까?
필자들이 이 책의 전서인 『Programming Flex 2』를 집필하던 당시, 체이픽과 조이는 플렉스 2 사용법을 완벽히 익혔다. 이때는 아직 소스코드가 공개되지도 않았던 시기였다. 두 필자는 원격 데이터를 이용한 작업, 복잡한 플렉스 레이아웃 스키마들의 탐색, 멋진 사용자 정의 컴포넌트 제작 등을 수행하는 방법을 힘겹게 알아냈다. 이들은 실질적 문제들을 해결하고 실무적인 코드를 작성하는 진정한 개발자들이었다. 그 책에서 나는 수많은 주제를 보고 ‘내가 저 책을 집필했더라면 좋았을 걸’이라고 속으로 되뇌었다. 이 필자들은 상당히 복잡한 주제들을 채집한 후 개발자에게 필요한 정보로 다듬었다.
그 플렉스 2 서적을 쓰기 위해 체이픽과 조이는 제품을 면밀히 조사했다. 차세대 웹 애플리케이션을 정의하게 될 동적 프레임워크의 피부를 들어내어 튼튼한 뼈대를 살폈다. 이 책에는 비디오 플레이어를 설계하고자 하는 사람을 위한 내용도 들어 있고, 엔화용 통화 포매터를 설계하고자 하는 사람을 위한 내용도 들어 있다. 애플리케이션 수명주기에 관해 처리하고자 하는 사람에게도 이 책은 제격이다.
아무튼 이 책은 여러분에게 플렉스 3가 무엇인지를 알려준다. 이 책을 끝까지 읽고 나면 플렉스 3라고 할 수 없는 문제점들이 발견될 수도 있지만, 그때는 그런 문제점에 대한 대책을 세울 수도 있게 된다. 만약 모두가 잠든 늦은 시각에 영감이 떠오른다면 여러분은 용기를 얻어 경험을 쌓고 http://opensource.adobe.com/flex에 가입해서 플렉스 분야에 발을 들여놓게 될지도 모른다.
매트 혼 어도비(Adobe)
머리말
말 그대로 이 책의 전서인 『Programming Flex 2』를 집필하는 데는 수년이 걸렸다. 필자들은 그 책에 심혈을 기울였고 탈고와 편집과 교정이 완료되어 마침내 프린터에서 벗어날 수 있었을 때 우린 긴 한숨을 내쉬며 이제 드디어 플렉스 집필에서 해방되는구나 하며 좋아했다. 하지만 플렉스 2가 나오고 얼마 되지도 않은 찰나에 플렉스 3가 순식간에 출시돼 버려서 피로한 심신에 휴식을 줄 수 없게 됐다. 그래서 우린 다시금 키보드 앞에 붙어 앉아 플렉스 3 버전에 맞게 기존 집필을 수정하기에 이르렀다. 그 결과로 이 책은 이렇게 여러분 손에 들려 있는 것이다. 이 책의 내용은 그저 간단한 수정에 불과한 것이 아니다.
우리는 『Programming Flex 2』가 플렉스 2에 관한 서적들 중 최고의 책이라고 생각했었다. 그러나 미흡한 점도 없지 않았다. 그 책의 내용 중에서 시간을 많이 할애하지 못한 주제도 있었다. 『Programming Flex 3』를 집필하면서 우리는 플렉스 3에 관한 책으로 내용을 업데이트했을 뿐만 아니라 전서에 수록되지 않았던 내용도 포함해서 다뤘다. 우린 소기의 목적을 달성해냈다는 생각이 든다.
이 책에 추가된 부분 중 일단 눈에 확 띄는 장이 20, 21, 22장이다. 20장에서는 플렉스 애플리케이션을 웹 페이지에 넣기 위해 알아야 하는 모든 내용을 상세히 설명했다. 이 내용이 플렉스의 최고 핵심은 아닐지라도 꽤 중요하다고 생각한다. 21장에는 플렉스를 이용한 AIR 데스크탑 애플리케이션 제작법에 관해 설명했으며, 22장에는 이 책의 전반에 걸쳐 설명했던 모든 주제를 융합해 하나의 완전체를 만드는 내용을 넣었다. 22장이 바로 우리가 생각하는 가장 중요한 장이라 할 수 있다. 왜냐하면 플렉스에 관해 앞 장들에서 설명했던 모든 것을 습득할 수 있는 방법이 설명돼 있고, 그 방법을 실무 애플리케이션 제작에 활용할 수 있기 때문이다.
하지만 이 책이 오로지 전서를 기반으로 그 3개의 장만 추가한 것일 뿐이냐고 묻는다면 대답은 ‘아니오’다. 이 책의 모든 장의 내용을 검토해서 수정했다. 몇 개의 장은 플렉스 2에서 3로의 변경사항이 미미해서 거의 수정이 불필요했지만, 나머지 장은 상당량의 수정과 추가가 이뤄졌다. 만일 여러분이 『Programming Flex 2』를 읽게 된다면 이 책에 새로 추가됐거나 수정된 내용을 굉장히 많이 발견할 수 있을 것이다.
플렉스 3는 플렉스 2에 비하면 말할 것도 없이 매우 광범위하다. 물론 깊이 들어갈수록 내용이 점점 어려워지기는 하지만(사실상 플렉스 3 애플리케이션 제작의 초반은 매우 쉽다), 이렇듯 길고 예리한 학습곡선을 갖는 이유는 단순히 프레임워크에 패키징된 기능의 양이 어마어마하기 때문이다. 공식 플렉스 문서는 이러한 기능들 중 뭔가를 찾기 쉽도록 잘 구성돼 있다. 그 덕분에 우리는 목표한 대로 여러분이 그 공식 문서에서 얻을 수 없던 지식의 갭을 메우고 곧장 시작할 수 있게끔 플렉스에 익숙해지게 해 주는 역할의 책을 집필해낼 수 있었다. 이 책을 쓰면서 필자들이 의도한 바는, 플렉스를 배움에 있어 플래시 플랫폼 기술을 사용해 우리가 리치 인터넷 애플리케이션을 제작해 온 장기간의 경험을 바탕으로 실무적 조언을 제공하는 것이다.
진심으로 우린 플렉스 3가 애플리케이션 제작에 이상적인 제품이라 생각한다. 이 책은 비록 기술서지만, 집필 내내 모든 열정을 쏟아 부었으며 이 책을 읽는 독자 여러분도 우리의 그러한 열정을 공유하게 되리라 믿는다. 플렉스 3는 리치 인터넷 애플리케이션을 제작하는 데 있어 시중의 다른 어느 것보다 훨씬 좋은 도구라고 생각하며 여러분도 아마 책을 읽으면서 이에 동의하리라 생각한다. 플렉스를 이용하면 브라우저 간 호환성 문제도 거의 없고, 네트워크 데이터 통신이 신속하며, 프레임워크가 견고한 객체 지향 원칙과 표준을 기반으로 제작돼 있어 좋다. 가장 세련되면서도 안정적인 애플리케이션 제작에는 플렉스 3만한 것도 없다는 생각이 든다.
/대상 독자
이 책은 플렉스 3에 관해 배우고자 하는 모든 이를 겨냥해서 집필됐다. 우리는 이 책의 독자가 다양한 배경을 가진 매우 다양한 그룹의 사람들이라는 점을 알고 있다. 수년간 플래시 플랫폼 기반의 기술을 이용해서 작업해 온 사람도 있겠고, 플래시 플레이어에서 돌아가는 콘텐트 제작이 아예 처음인 사람도 있을지 모른다. 컴퓨터과학 학위를 보유한 사람이 있을 수도 있겠고, 소프트웨어 업계에서 수년간 종사한 사람도 있을 수 있다. 물론 독학으로 공부한 사람도 있을 것이다. 우린 이러한 다양한 독자들의 요구에 부합하는 내용을 다루기 위해 최선을 다했다.
하지만 이 책을 최대한 활용하려면, 여러분은 객체 지향 원칙을 탄탄히 이해하고 런타임 환경, 바이트 코드, 컴파일러 등의 개념을 파악해야만 한다. 추가로, 혹시 여러분이 이미 액션스크립트, 자바, C, C#이나 그 밖의 비슷한 문법을 사용하는 언어를 알고 있다면 이 책을 좀 더 능률적으로 활용할 수 있을 것이다. 이 책에도 액션스크립트(플렉스 애플리케이션이 이용하는 프로그래밍 언어) 기초에 대해서 한 개의 장을 할애해 다루기는 했으나, 핵심 API에 대해서는 이 책에서 자세히 설명하지 않는다. 혹시 액션스크립트 언어를 체계적으로 공부하고 싶은 사람은 『Essential ActionScript 3』나 『ActionScript 3 Cookbook』 등의 액션스크립트 3.0 전문서를 읽으라고 권하고 싶다.
/책의 구성
이 책의 목차를 구성하고 또 재구성하는 데 많은 시간을 할애했다. 모든 독자에게 안성맞춤이 되도록 목차를 표현할 방법은 전혀 없는 것 같지만, 우리 나름대로 최선을 다해서 합리적이라 여기는 순서대로 표현했다.
1장, 플렉스 기초 플렉스란 무엇인가? RIA(리치 인터넷 애플리케이션)는 또 무엇인가? 이러한 의문들에 답을 주며 이 책의 나머지 부분을 이해하기 위한 기본 지식을 설명해 놓은 장이다.
2장, 플렉스 프레임워크로 애플리케이션 제작 다양한 엘리먼트와 플렉스 애플리케이션 제작 단계에 대해 설명한다. 컴파일러 사용법, 스크립트 제작, 플래시 플레이어 보안, 애플리케이션 디플로이법 등을 다룬다.
3장, MXML MXML은 플렉스가 사용하는 선언형 언어다. 이 장에선 MXML의 기초 내용을 설명한다.
4장, 액션스크립트 액션스크립트는 플렉스가 사용하는 객체 지향 프로그래밍 언어다. 이 장에서는 액션스크립트 3.0의 기초적인 내용을 공부한다.
5장, 프레임워크 기초 플렉스는 애플리케이션 제작의 여러 측면을 대단히 간소화해 준다. 여러분이 내부적인 원리까지 자세히 알아야 할 경우는 별로 없지만, 프레임워크의 동작 원리에 대해 기초적인 사항을 이해하고 있으면 나중에 쓸모가 있다. 이 장에서는 플렉스 애플리케이션의 수명주기, 부트스트래핑 등에 관해서 설명한다.
6장, 레이아웃 관리 플렉스에는 여러분이 제작하게 될 애플리케이션 내에 모든 종류의 레이아웃을 쉽고 빠르게 작성할 수 있게 해 주는 다양한 레이아웃 컨테이너가 있다. 그러한 컨테이너들을 가지고 작업하는 방법을 설명한다.
7장, UI 컴포넌트를 이용한 작업 플렉스 프레임워크의 일부분인 사용자 인터페이스 컴포넌트(버튼, 목록, 메뉴 등)에 관해 살펴보겠다.
8장, 애플리케이션 외형 사용자 정의하기 공동 스타일 지침이라든지 창의적 시각에 충실한 애플리케이션을 제작할 수 있다는 점에서, 플렉스 애플리케이션의 외형을 개발자가 맞춤화하는 것은 중요한 일이다. 플렉스 애플리케이션의 외형을 바꾸는 방법에 대해 공부하겠다.
9장, 애플리케이션 컴포넌트 플렉스 애플리케이션 개발을 다루기 쉽게 하려면 애플리케이션을 각각의 부분들로 분해하는 방법을 알아야 한다. 이러한 개별 요소들로의 분해 방법을 설명한다.
10장, 프레임워크 유틸리티와 고급 컴포넌트 개념 먼저 컴포넌트를 이용한 작업의 기초에 대해 이해했다면, 그 지식을 확장하는 방법을 알아야 한다. 이 장에서는 툴팁, 목록 맞춤화, 팝업창 등을 살펴보겠다.
11장, 미디어 작업 플렉스에서는 개발자가 작성하는 애플리케이션에 각종 애셋이나 애니메이팅되는 이미지에서부터 비디오나 오디오에 이르기까지 다양한 미디어를 포함시킬 수 있다. 이러한 엘리먼트들을 가지고 작업하는 방법을 이 장에서 설명한다.
12장, 스테이트 관리 플렉스 애플리케이션과 그 애플리케이션에 들어 있는 컴포넌트들은 하나의 뷰에서 다른 뷰로 전환될 수 있다. 플렉스에서는 이러한 변화를 ‘스테이트’라고 한다. 스테이트는 폼에 새 컴포넌트를 추가하는 것만큼 간단할 때도 있지만, 어떨 땐 화면에 있는 전체 콘텐트가 변경돼야 하는 경우도 있다. 이 장의 주제는 스테이트 관리 방법이다.
13장, 이펙트와 전환 플렉스에는 ‘전환’과 ‘이펙트’라는 기능이 있어서, 스테이트들 간에 또는 사용자에 대한 응답과 시스템 이벤트 간에 활기찬 변화를 줄 수가 있다. 이 장에서는 그러한 전환과 이펙트에 대해서 다룬다.
14장, 데이터 작업 플렉스 애플리케이션 내의 데이터를 모델링하는 방법을 설명하며, 데이터 값이 변경되면 컴포넌트들이 자동으로 업데이트되도록 컴포넌트들을 연결하는 방법에 대해서도 설명한다.
15장, 데이터의 유효성 검사와 형식화 사용자 입력 내용을 검증하는 방법과 숫자, 전화번호 같은 데이터의 형식을 정의하는 방법을 다룬다.
16장, 클라이언트 데이터 통신 클라이언트 데이터 통신이란 데이터가 클라이언트 측 컴퓨터에 잔존하는 플래시 플레이어에 출입하는 모든 데이터 전송을 총칭한 것이다. 이에 대한 예로 동일한 한 대의 컴퓨터에서 실행되고 그 컴퓨터에 영구 데이터를 저장하는 둘 이상의 플렉스 애플리케이션들 간의 통신을 들 수 있다. 15장에서 다루는 주제는 이러한 것들이다.
17장, 원격 데이터 통신 클라이언트 컴퓨터에서 돌아가는 플렉스 애플리케이션에서 원격 데이터 서비스로 통신하는 방법에 대해 설명한다. 이 장에선 XML, SOAP, AMF 등의 사용법을 공부하게 된다.
18장, 디버깅 애플리케이션의 버그를 바로잡는 것은 애플리케이션을 작성하는 것만큼이나 중요하다. 에러 없는 애플리케이션을 작성한다는 것은 드문 일이며, 그렇기 때문에 그러한 에러를 효과적으로 추적해내는 것은 중요한 일이다. 이 장에서는 플렉스의 디버깅 도구 사용법을 알아보겠다.
19장, 사용자 정의 컴포넌트 제작 개발자가 사용, 맞춤화, 배포가 가능한 엘리먼트를 제작할 수 있다는 점에서 사용자 정의 컴포넌트는 플렉스 애플리케이션의 중요한 부분이다. 이 장에서는 플렉스 프레임워크를 이용해 사용자 정의 컴포넌트를 제작하는 데 필요한 단계를 설명한다.
20장, 브라우저에 플렉스 애플리케이션 삽입 대부분이라 할 순 없지만 많은 플렉스 애플리케이션이 웹상에 디플로이된다. 이를 위해선 플렉스 애플리케이션을 웹 브라우저에 삽입해야 한다. 이 장에서는 브라우저에 플렉스 애플리케이션을 삽입하는 방법에 대해 설명하고 뒤로/앞으로 버튼의 기능과 딥 링크 기능을 구현하기 위해 플렉스 애플리케이션을 브라우저에 통합하는 방법에 대해 설명하겠다.
21장, AIR 애플리케이션 제작 플렉스로 어도비 AIR 런타임 환경에서 돌아가는 데스크탑 애플리케이션을 제작하는 방법에 대해 다룬다. 이를 통해 개발자는 플렉스 기술을 사용해서 로컬 파일 시스템이나 시스템 수준의 드래그 앤 드롭 같은 데스크탑에서만 가능한 기능에 접근할 수 있는 애플리케이션을 제작할 수 있다.
22장, 플렉스 애플리케이션 제작 완전한 플렉스 애플리케이션을 제작하고 작업함에 있어 난점들을 살펴본다. 이 장에선 각종 아키텍처 과제 및 그에 대한 각종 해법을 배우게 된다.
/감사의 글
이 책에는 많은 이들의 노력과 기여가 담겨 있다. 다음에 나열한 사람들에게 감사를 표하고 싶다.
이 책이 나올 수 있게 해 준 오라일리 임직원들께 큰 감사를 드린다. 스티브 바이스(Steve Weiss)와 오드리 도일(Audrey Doyle)에게 이 책의 집필과 편집 내내 끊임없이 수고해 주고 인내해 준 데 대해 특별한 감사를 전한다. 둘은 지속적으로 각자의 임무를 초월해 수고해 줬다.
플렉스 2 같은 훌륭한 제품을 제작해 준 데 대해서만이 아니라 우리의 문의에 답해 주고 우리가 놓치고 있었을지도 모르는 사항에 대해 알려 준 많은 어도비 가족들에게도 감사를 전하고 싶다. 그 밖에도 우리의 질문에 답해 줬을 뿐만 아니라 시간을 할애해 집필한 장들을 검토해 주고 소중한 의견을 제시해 준 매트 초틴(Matt Chotin), 알렉스 하루이(Alex Harui), 앤드류 스폴딩(Andrew Spaulding), 매니시 제서니(Manish Jethani)에게 특히 감사하고 싶다. 또한 이 책의 추천사를 써달라는 우리의 제의를 수락해 준 어도비의 매트 혼(Matt Horn)에게도 감사를 전한다.
이 책의 기술적 퀄리티는 필자들만의 업적은 아니다. 환상적인 그룹의 기술 감수자 분들이 몇 시간씩 들여서 잘못된 점을 최종 수정하도록 지적해 줬기에 이러한 퀄리티가 나올 수 있었다. 이 책에 들어 있는 코드가 제대로 작동하는 것이 다 기술 감수자 로민 이라니(Romin Irani)와 데렉 위스추센(Derek Wischusen) 덕택이다.
체이픽의 인사
뛰어난 공동 저자가 되어준 데 대해 조이 로트에게 사의를 표하고 싶다. 기술 영역과 출판이라는 양 업계에서의 조이의 경험 덕분에 이 책을 집필하는 긴 과정을 타개해 나갈 수 있었다. 집필 경험 내내 뒷받침해 준 나의 가족, 친구들과 더불어 아텔리스(Atellis)의 팀에게도 고마움을 표하고 싶다. 드디어 해냈다! 끝으로 집필 경험이 처음인 나를 믿어준 오라일리 팀과 이 책에 고마움을 전달하고 싶다.
조이의 인사
이 책을 집필할 수 있게 나를 섭외해 준 체이픽에게 진심으로 고맙게 생각한다. 체이픽과의 작업은 영광이었으며, 최상의 완벽주의를 통해 그는 이 책에서 내가 보여주려 의도한 최대한의 것들을 이끌어낼 수 있게 했다. ‘더 몰픽 그룹(The Morphic Group)’에서 근무하는 동료들에게도 이 책에 도움되는 조언들을 해 준 데 대해 감사를 전한다. 더불어 관대한 마음으로 뒤치다꺼리를 해 준 나의 가족과 친구들에게도 감사와 사랑을 전한다.
저자 소개
체이픽 커준(Chafic Kazoun) 체이픽 커준은 이 책의 공동 저자이자 Atellis의 수석 소프트웨어 설계사다. 1998년부터 플래시 기술 관련 업무를 해 왔으며 처음부터 플렉스를 병행했다.
조이 로트(Joey Lott) 조이 로트는 The Morphic Group(www.themorphicgroup.com)의 공동 설립자며, 플렉스 애플리케이션 개발이 주력 업무다. 오라일리의 『ActionScript 3 Cookbook』을 비롯한 플렉스 및 플래시 기술에 관한 유수의 서적들을 집필했다.
약 7년 전 플래시를 처음 접해서 뭔가 만들어 보려고 했던 때가 생각난다. 그때는 액션스크립트라고 해봐야 거의 언어적인 측면이 미미해서 별도로 액션스크립트라는 존재나 개념을 정립하지 못한 채 프레임 간의 이동이나 버튼 제어 등에 간략한 스크립트를 사용했었다. 처음 액션스크립트 2가 등장해서 접했을 때는, 내가 기존에 플래시 파일을 제작할 때 사용했던 그 간략한 스크립트 명령들을 이런 식으로 다른 언어처럼 길게 작성해서 상당한 것들을 제어할 수 있다는 점에 조금 놀랐다. 당시에 플래시 툴을 이용해서 액션스크립트 2를 작성하고 각종 세련된 사용자 정의 컴포넌트를 만들어내는 전문가 분들의 소스코드를 살펴보면서 이런 식으로 컴포넌트들을 이용해 커다란 애플리케이션을 제작한다면 참 유용하겠다는 생각을 했었다. 하지만 당시 액션스크립트 2를 능숙하게 프로그래밍하는 분들을 많이 접하지 못해서 개인적으로는 과연 이러한 액션스크립트가 대중화되어 널리 활용될지에 대해서는 회의를 갖고 있었다. 내가 플래시나 액션스크립트 전문가라든지 심지어 툴에 익숙한 플래시 디자이너인 것도 아니지만, 그래도 액션스크립트 2가 아직 여타의 구조적 언어들에 비해서는 뭔가 약간의 체계성이 부족한 것 같다는 생각이 들었다. 그 후 액션스크립트에 대한 나의 관심이 식어갈 무렵 액션스크립트 3가 공식 발표됐고 많은 변화를 발견했다. 무엇보다 기존에 접한 다른 언어와 상당히 비슷해졌고 엄격해진 객체 지향 개념의 첨가로 훨씬 더 체계화된 느낌이었다.
사실 내가 플렉스를 접하게 된 것은 그리 오래되지 않았다. 액션스크립트 3 등장 직후, 플래시 툴에서 직접 그리고 프레임을 제어하는 디자인과 애니메이션 기반의 제작을 탈피해서 이제는 뭔가 액션스크립트 3를 적극 활용해서 간편한 방식으로 애플리케이션을 만들 수 있다면 좋지 않을까 생각하게 됐고 그 무렵 국내에서 플렉스 2의 인기도 때마침 높아지고 있는 시점이어서 나도 손쉽게 플렉스 2의 존재를 감지하게 됐다. 예전 학창 시절에 MFC 수업을 듣고 처음 실습했을 때의 그 편의적인 느낌이 다가왔다. 단순히 몇 줄 되지 않는 코드 작성만으로 간단하게 애플리케이션이 완성되고 실행해 볼 수 있다는 점에서 전율을 느꼈다.
이 책에도 이미 충분히 설명돼 있기에 플렉스 3에 관한 추가적인 언급을 할 필요성은 느끼지 못하지만 플렉스 3는 계속된 진화 과정을 거쳐서 이제 표준, 객체 지향, 호환성 등이 지원되는 간결하고 세련되면서도 강력한 기능의 각종 RIA를 제작하는 데 있어선 더할 나위 없는 도구로 자리 잡으리라 예견한다.
이 책에 수록된 무수한 부분 예제들을 직접 작성해서 플렉스 프레임워크나 명령줄 툴을 이용해서 컴파일하고 결과를 본다면 그 각각의 한 단계를 밟을 때마다 각자의 실력과 경험이 누적돼 갈 것이라 생각한다. 특히 맨 끝의 22장엔 그 앞의 장들에서 다룬 모든 내용을 총괄 적용해 완성 애플리케이션을 제작하는 과정까지 설명하고 있으니 종합적 응용 방법을 손쉽게 주워 담을 수 있다. 플렉스 2 서적 번역 중 그 짧은 시차에 플렉스 3가 발표되는 바람에 재번역을 해야 했지만 그를 통해 짤막한 코드를 반복 실행해 봄으로써 내 별 볼일 없는 플렉스 경험도 조금이나마 쌓였고 플렉스에 대한 애정도 커졌다. 이 툴을 활용한다면 아직까지 우리가 상상하지 못하는 무한한 잠재 가능성을 웹 또는 데스크탑에서 실현해낼 수도 있지 않을까 싶다. 플렉스 3라는 편리하고 발전적인 도구가 마련돼 있으니 이 도구의 사용법을 효과적으로 터득해서 이제 각자의 상상 속 아이디어를 실제로 적용한 호화로운 애플리케이션을 무한한 크기의 백지 위에 자유롭게 구현해 보자.
김지원(www.gtport.com) 프로그래밍과 새로운 웹 기술에 항상 관심을 갖고 공학 용어의 명확성에 대해 고민하고 있다. 기술 문서, 매뉴얼, IT 관련 논문을 주로 번역했으며 해외 기술 논문 한글화 작업에도 참여했다. 번역서로는 『CSS 비밀 매뉴얼』, 『Ajax 디자인 패턴』, 『시스템 관리자를 위한 시간관리 전략』, 『웹 2.0 프로그래밍』이 있다.