• Adobe FLEX 4 실전 트레이닝 북

  • 마이클 래브리올라, 제프 태퍼, 매튜 볼스 지음
  • 정선우, 이원영 옮김

  • 오픈소스 & 웹 시리즈_031
  • ISBN: 9788992939737
  • 27,000원 | 2011년 04월 25일 발행 | 520쪽



Adobe의 공식 트레이닝 커리큘럼 교재인 『Adobe FLEX 4 실전 트레이닝 북』은 실무 프로젝트 기반의 실습 위주로 플렉스 기술을 설명한다. 플렉스의 구성요소를 이론적으로 간략히 설명하고 코딩을 통해 해당 개념을 이해할 수 있도록 구성하고 있어, 각 장에 있는 실습을 차근차근 수행해나간다면 여러분도 하나의 완벽한 애플리케이션을 작성할 수 있다. 또 플렉스 애플리케이션이 어떻게 구성되어 있는지 궁금하거나 플렉스로 프로젝트를 수행해야 하는 개발자에게 가장 실무 수준에 근접한 내용을 전달할 수 있는 프로젝트 코드를 제공한다.

 

추천사

10년전 매크로미디어에서는 미래의 애플리케이션을 설명하기 위해 “RIA(Rich Internet Application)"라는 신조어를 만들어냈다. RIA는 상당한 양의 데이터와 비즈니스 로직이 서버에 있거나 클라우드화되고 데스크톱의 컴퓨팅 능력을 활용해 훌륭한 사용자 경험을 제공한다. 플렉스는 매크로미디어가 2004에 출시함과 동시에 RIA 환경의 중심이 되었고, 2006에 어도비가 매크로미디어를 인수하면서 어도비의 이름으로 후속 버전이 출시됐다. 플렉스 4가 출시되면서 어도비는 RIA의 강력함을 더 많은 개발자들에게 가져다 주었다. 이 책은 이 같은 강력함을 활용하는 법을 익히기에 대단히 좋은 책이다.

어도비 플렉스는 몇 가지 요소로 구성된다. 플렉스는 애플리케이션을 구성하기 위해 마크업 언어인 MXML을 사용하고, 강력한 프로그래밍을 제공하기 위해 액션스크립트 3.0(ECMAScript 4로 구현)을 사용한다. UI까지도 CSS를 이용해 커스터마이즈할 수 있다. 또한 플렉스가 사용하는 언어를 배우는 것 말고도 강력한 컴포넌트 라이브러리와 플렉스를 애플리케이션에 적용할 수 있는 방법을 배울 것이다. 플렉스는 레이아웃 컨테이너, 폼 컨트롤, 포맷터와 밸리데이터, 리치 텍스트 라이브러리, 효과와 애니메이션 라이브러리 외에도 많은 기능을 제공해서 강력한 UI를 빠른 시간에 만들 수 있게 해준다. 플렉스에서 라이브러리로 제공하지 않는 기능을 구현하려면 제공하는 라이브러리를 확장해 여러분이 직접 만들 수도 있다.

플렉스 4에서는 Spark라는 차세대 플렉스 컴포넌트 프레임워크를 도입하기 위해 많은 시간을 들였다. 기존 플렉스 아키텍처를 기반으로 만들어진 Spark 컴포넌트는 플렉스 애플리케이션을 개발할 때 개발자와 디자이너의 협업을 위한 매우 인상적인 메커니즘을 제공한다. Spark 컴포넌트는 모델-뷰-컨트롤러(MVC, Model-View-Controller) 구성을 촉진하고, 시각적인 측면과 동작을 깔끔하게 분리하기 위한 기능을 제공해 플렉스 애플리케이션의 개발과 유지보수를 훨씬 쉽게 만들어준다. 또한 서로 다른 도구를 사용하는 디자이너와 개발자의 더 나은 협업을 가능하게 해준다.

인터페이스를 멋지게 만드는 것만으로는 충분하지 않다. 애플리케이션은 기능해야 하고, 데이터를 처리해야 할지도 모른다. 플렉스가 백엔드 데이터 소스를 어떤 다양한 방법으로 XML에서부터 HTTP를 거쳐 SOAP 웹 서비스, 그리고 AMF(Action Message Format)라는 효율적인 원격 프로토콜까지 연결하는지를 알게 될 것이다. 또 플렉스는 대용량 데이터, 특히 많은 사용자가 공유하는 데이터를 쉽게 관리하게 해주는 라이브사이클 데이터 서비스(LiveCycle Data Services)와의 긴밀한 통합을 제공한다.

플렉스의 컨트롤은 모두 일반 텍스트 편집기로 작성해서 오픈소스 Flex SDK상에서 돌려볼 수도 있지만 환상적인 통합 개발 툴인 이클립스를 기반으로 만들어진 어도비 플래시 빌더 4를 이용하면 다양한 기능을 더 쉽고 빠르게 만들어 테스트할 수 있다. 그리고 어도비에서는 플렉스 4의 일부로 새로운 툴인 어도비 플래시 카탈리스트(Adobe Flash Catalyst)를 출시했는데, 이것은 디자이너들이 훌륭한 사용자 경험을 만들 때 개발자와 쉽게 협업할 수 있게 돕는다. 또한 개발 단계의 생산성을 높이기 위한 많은 서드파티 도구나 라이브러리, 확장 컴포넌트(이 책의 저자들도 몇 개 만들었다)도 있다.

마지막으로 단지 플렉스의 구성요소를 아는 것만으로는 충분하지 않다. 그것들을 어떻게 잘 활용하는지 알아야 한다. 이 책은 저자의 노하우를 토대로 플렉스의 기초와 개념, 그리고 베스트 프랙티스까지 소개한다. 이 책을 읽고 나면 여러분의 애플리케이션을 더 나은 모습으로, 많은 것을 빠르게 만들 수 있을 것이다.

영화에 나오는 애플리케이션이 비현실적으로 보이는가? 플렉스 4와 관련 도구의 강력한 기능을 활용하면 그러한 애플리케이션도 그리 현실과 동떨어진 것이 아니다. 우리 어도비 사람들은 여러분이 그러한 애플리케이션을 선보일 날을 고대한다.

-- 매트 코틴, 어도비 시스템즈 선임 제품 관리자

마이클 래브리올라(Michael Labriola)

마이클 래브리올라는 Digital Primates의 공동 설립자이자 선임 컨설턴트다. 1995년부터 인터넷 애플리케이션을 개발해 왔으며, Flex 1.0 베타 프로그램부터 플렉스와 함께해왔다. 마이클은 Adobe 공식 강사이자, 커뮤니티 전문가이고, 플렉스 개발자 챔피언으로서 세계 10대 브랜드 가운데 3개사를 자문했으며, 플렉스와 AIR에 관한 국제적인 강연자이기도 하다. 마이클은 Digital Primates에서 컨설턴트로 재직 중이며 클라이언트 개발 팀에 새로운 기술을 자문하는 일을 담당하며, 여가 시간에는 기술에서 벗어나 와인과 음식을 즐긴다.

제프 태퍼(Jeff Tapper)

제프 태퍼는 Digital Primates의 공동 설립자이자 선임 컨설턴트다. 1995년부터 Major League Baseball, ESPN, Morgan Stanley, Conde Nast, IBM, Dow Jones, American Express, Verizon 등과 같은 무수히 많은 고객의 인터넷 기반 애플리케이션을 개발했다. 그는 Flex 1.0의 초창기부터 플렉스 애플리케이션을 개발해왔다. 제프는 플랙스, AIR, 플래시, 콜드퓨전 개발에 관한 Adobe의 모든 과정을 가르칠 수 있는 자격을 인증받았으며, Adobe Development Conferences와 사용자 그룹의 단골 강연자이기도 하다. Digital Primates는 RIA 개발에 관한 전문적인 가이드와 자문을 제공한다.

매튜 볼스(Matthew Boles)

매튜 볼스는 Adobe Technical Marketing 그룹의 기술 교육 전문가이며, Flex 1.0이 출시될 때부터 플렉스 교육 과정을 개발하고 가르쳐왔다. 매튜는 웹 개발, 컴퓨터 네트워킹, 강의와 같은 다양한 이력을 지녔다. 아울러 본 책의 이전 버전인 Flex 3의 공동 저자이기도 하며 Adobe의 공식 교육 과정을 개발하는 데도 기여했다.

정선우

한양대학교 전자 컴퓨터 공학부를 졸업하고 KT 커머스, POSDATA, 동부 CNI에서 근무했고, Java, OpenSource Framework, Flex 강의를 했으며, 현재는 프리랜서로 활동 중이다. 관심사는 Java, Flex, OpenSource Framework를 이용한 프로젝트이다.

이원영

오리건주립대에서 컴퓨터 과학을 전공하고 대우정보기술, 아시아나IDT에서 근무했다.

  • 01장 리치 인터넷 애플리케이션의 이해
    • 컴퓨터 애플리케이션의 진화
    • 페이지 기반 아키텍처에서 벗어나기
    • 리치 인터넷 애플리케이션의 장점
      • 비즈니스 관리자
      • IT 조직
      • 최종 사용자
    • RIA 기술
      • AJAX
      • 자바 가상 머신
      • 마이크로소프트 실버라이트
      • 어도비 플래시 플랫폼
    • 이번 장에서 배운 내용
    •  
  • 02장 시작하기
    • 플렉스 애플리케이션 개발 시작하기
    • 프로젝트와 MXML 애플리케이션 만들기
    • 플래시 빌더 워크벤치 이해하기
    • 애플리케이션 실행하기
    • 플래시 빌더 디버거 살펴보기
    • 다음 실습을 위한 준비
    • 이번 장에서 배운 내용
    •  
  • 03장 인터페이스 레이아웃 구성
    • 레이아웃 학습하기
      • 컨테이너 이해하기
      • 레이아웃 객체 이해하기
      • 컨테이너와 레이아웃 객체 결합하기
      • 콘텐츠 스크롤하기
      • MXML 태그 디코딩하기
    • 전자상거래 애플리케이션의 레이아웃 구성하기
      • 소스 뷰에서 레이아웃 구성 시작하기
      • 디자인 뷰에서 계속 레이아웃 구성하기
      • 상품 영역 정의하기
    • 제약 기반 레이아웃에서 작업하기
    • 뷰 스테이트 다루기
      • 뷰 스테이트 만들기
      • 뷰 스테이트 제어하기
    • 리팩터링
      • 구성된 컨테이너 사용하기
      • 애플리케이션 리팩터링
    • 이번 장에서 배운 내용
    •  
  • 04장 간단한 컨트롤 사용하기
    • 간단한 컨트롤 소개
    • 이미지 표시
    • Detail 뷰 구축하기
    • 데이터 바인딩을 이용한 간단한 컨트롤과 데이터 구조의 연결
    • Form 레이아웃 컨테이너를 이용한 간단한 컨트롤의 레이아웃 구성
    • 이번 장에서 배운 내용
    •  
  • 05장 이벤트 처리
    • 이벤트 처리 이해하기
      • 간단한 예제 분석
      • 액션스크립트 함수를 이용한 이벤트 처리
      • 이벤트 핸들러 함수를 호출할 때 데이터 전달하기
      • 이벤트 객체 데이터 사용하기
      • 이벤트 객체 인스펙션하기
    • 시스템 이벤트 처리
      • creationComplete 이벤트 이해하기
      • 생성 완료 시점에서 데이터 수정하기
    • 이번 장에서 배운 내용
    •  
  • 06장 원격 XML 데이터 사용하기
    • Embedded XML 사용하기
      • Model을 외부화하기
      • 객체와 XML 중에서 선택하기
      • 런타임에 로드된 XML 사용하기
      • HTTPService 객체 만들기
      • send() 메서드 호출하기
      • 반환된 데이터 접근하기
      • 보안 문제
    • HTTPService로 XML 데이터 조회하기
    • E4X로 XML 검색하기
      • E4X 연산자 활용
    • 동적 XML 데이터 사용하기
    • 플렉스 컨트롤에서 XMLListCollection 사용하기
    • 이번 장에서 배운 내용
    •  
  • 07장 클래스 만들기
    • 사용자 정의 액션스크립트 클래스 만들기
    • 값 객체 만들기
    • 객체를 생성하는 메서드 만들기
    • Shopping Cart 클래스 만들기
    • 장바구니 데이터 조작하기
      • 장바구니에 아이템 추가하기
    • 아이템 추가하고 수량 수정하기
      • 조건에 따라 ShoppingCartItem 추가하기
    • 이번 장에서 배운 내용
    •  
  • 08장 데이터 바인딩과 컬렉션
    • 데이터 바인딩 검사하기
      • 간단한 예제 살펴보기
      • 더 복잡한 코드 분석
    • 컴파일러 되기
      • 암시적인 접근자와 설정자
      • 이벤트 디스패칭과 리스닝
      • 이벤트로서의 데이터 바인딩
    • Bindable의 의미 이해하기
    • ArrayCollection 사용하기
      • ArrayCollection 채우기
      • ArrayCollection에서 항목 정렬하기
      • 커서로 검색 기능 리팩터링하기
      • 커서로 아이템 삭제하기
      • ArrayCollection에서의 항목 필터링
    • ShoppingCartItem 리팩터링
    • 이번 장에서 배운 내용
    •  
  • 09장 애플리케이션을 컴포넌트로 나누기
    • MXML 컴포넌트 소개
      • 기본적인 사용자 정의 컴포넌트 제작 방법 이해
      • 단계별 사용자 정의 컴포넌트 제작
      • 애플리케이션 아키텍처에서 사용자 정의 컴포넌트 사용하기
    • ShoppingView 컴포넌트 분리하기
    • ProductItem 컴포넌트 분리하기
    • 데이터 로딩을 관리하는 컴포넌트 만들기
    • 이번 장에서 배운 내용
    •  
  • 10장 DataGroup과 List 사용하기
    • List 사용하기
      • List에서 labelFunction 사용하기
    • DataGroup 사용하기
      • itemRenderer 구현하기
      • ShoppingView에서 DataGroup 사용하기
      • 가상화 이해하기
      • 가상화 구현하기
    • List 클래스의 가상화
    • 카테고리 선택에 따라 식료품 보여주기
      • 카테고리를 기준으로 식료품 아이템 보여주기
      • 카테고리 List 변경 핸들러 추가하기
    • 이번 장에서 배운 내용
    •  
  • 11장 이벤트 생성과 디스패치
    • 느슨한 결합 형태의 장점
    • 이벤트 디스패치
    • 컴포넌트에 대한 이벤트 선언
    • 사용자 정의 이벤트에 대한 필요성 확인
    • UserAcknowledgeEvent 생성과 활용
    • Event Flow와 Event Bubbling 이해하기
    • ProductEvent 클래스 생성과 사용
      • ProductList 컴포넌트 만들기
      • ProductList 컴포넌트 사용하기
      • 상품을 추가하고 삭제하기 위한 ProductEvent 사용
      • 컬렉션 변경 이벤트 처리
    • 이번 장에서 배운 내용
    •  
  • 12장 DataGrid와 Item Renderer 사용하기
    • Spark와 MX
      • DataGrid와 Item Renderer 소개
    • DataGrid에 ShoppingCart 표시하기
      • CartGrid 컴포넌트 사용하기
      • DataGridColumn에 인라인 편집 컨트롤 추가하기
      • 상품을 보여주기 위한 Item Renderer 생성
      • Remove 버튼을 보여주기 위한 인라인 MXML Item Renderer 생성
      • ProductEvent 클래스 재사용하기
      • 소계를 보여주기 위한 labelFunction 생성
    • AdvancedDataGrid 사용하기
      • AdvancedDataGrid 정렬
      • Expert Mode 정렬하기
      • AdvancedDataGrid의 스타일 지정
      • 데이터 그룹화
      • 요약 데이터 보여주기
    • 이번 장에서 배운 내용
    •  
  • 13장 드래그 앤 드롭 활용
    • 드래그 앤 드롭 매니저 소개
    • 두 개의 DataGrid 간에 드래그 앤 드롭하기
    • DataGrid와 List 간의 드래그 앤 드롭
    • 드래그를 허용하지 않는 컴포넌트에서 드래그 앤 드롭 사용하기
    • 장바구니에 식료품 드래그하기
    • 이번 장에서 배운 내용
    •  
  • 14장 내비게이션 구현
    • 내비게이션 소개
    • ViewStack으로 결제 프로세스 만들기
    • 애플리케이션에 CheckoutView 통합하기
    • 이 장에서 배운 내용
    •  
  • 15장 포맷터와 밸리데이터 사용하기
    • 포맷터와 밸리데이터 소개
      • 포맷터
      • 밸리데이터
    • Formatter 클래스 사용하기
      • 양방향 바인딩
    • Validator 클래스 사용하기
    • 이번 장에서 배운 내용
    •  
  • 16장 플렉스 애플리케이션 커스터마이즈하기
    • 스타일과 스킨이 포함된 디자인 적용하기
    • 애플리케이션 외관 정리하기
    • 스타일 적용하기
      • 태그 속성으로 스타일 설정하기
      • 스타일 상속 이해하기
      • <fx:Style> 태그로 스타일 설정하기
      • CSS 파일을 이용한 스타일 설정
      • 애플리케이션에 스타일 추가하기
    • 런타임에 CSS 변경하기
      • 런타임 CSS의 장점
      • CSS 파일을 SWF로 생성하기
      • StyleManager로 CSS SWF 로드하기
      • 로딩된 CSS로 스타일 재정의하기
    • 이번 장에서 배운 내용
    •  
  • 17장 스킨을 이용한 플렉스 애플리케이션 커스터마이즈
    • Spark 컴포넌트에서 스킨 역할 이해하기
    • 스킨과 스테이트의 관계
      • 플렉스에서 프로그램 방식으로 그리기
      • 스킨을 이용한 Button 스테이트 커스터마이즈
    • 애플리케이션 스킨 만들기
    • 이번 장에서 배운 내용
    •  
  • 18장 사용자 정의 액션스크립트 컴포넌트 만들기
    • 액션스크립트 3.0 컴포넌트 소개
    • 복잡한 컴포넌트 만들기
    • 플렉스 컴포넌트 이해하기
    • 컴포넌트를 왜 만드는가?
    • 컴포넌트 정의하기
      • 인터페이스 정의하기
      • 기반 클래스 선택
      • 클래스 만들기
      • 사용자 정의 클래스 사용하기
    • 시각적인 형태로 만들기
      • 스킨 요구사항 구체화하기
      • 스킨 생성하기
    • 컴포넌트에 기능 추가하기
      • 비동기적인 처리
      • 이벤트를 이용한 상호작용
      • 나머지 부분 처리
    • 스킨 렌더러 생성하기
    • 이번 장에서 배운 내용
    •  
  • 19장 설치 안내
    • 소프트웨어 설치
      • 플래시 빌더 설치하기
      • 실습 파일 설치하기
      • 플래시 디버그 플레이어 설치하기
    • 프로젝트 가져오기
      • 실습 파일 가져오기

예제코드 관련 GitHub 페이지

관련 글