Top

[플래시/플렉스 개발자를 위한]
액션스크립트 3.0 디자인 패턴

  • 원서명Advanced ActionScript 3 with Design Patterns (ISBN 9780321426567)
  • 지은이조이 로트, 대니 패터슨
  • 옮긴이정호연
  • 감수자양주일
  • ISBN : 9788960770638
  • 28,000원
  • 2008년 10월 28일 펴냄 (절판)
  • 페이퍼백 | 400쪽 | 188*250mm

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

살펴볼 만한 가치가 있는 디자인 패턴을 소개하고 액션스크립트 3.0을 통해 디자인 패턴이라는 강력한 기술을 활용하는 노하우를 담은 요긴한 가이드다.

이 책으로 시작 단계에서부터 테스트 단계에 이르기까지 좀더 효과적으로 애플리케이션을 작성하는 방법과 적합한 디자인 패턴을 활용해 애플리케이션 설계를 단순화시키는 방법을 배울 수 있다. 또한 유연하게 코드를 유지하게 도와주는 가이드라인을 배워서 애플리케이션 손상에 대한 두려움 없이 프로그램을 쉽게 수정할 수 있을 것이다. 게다가 이 책은 제대로 동작하는 예제 애플리케이션들로 가득 차 있다.


[ 소개 ]

플래시 플랫폼이 성장함에 따라 플래시 기반 애플리케이션의 저변과 규모도 성장했다. 플래시의 성장은 액션스크립트 개발자들에게 끊임없이 성숙할 것을 요구한다. 플래시 애플리케이션은 새롭게 진보했고 증가하는 요구들은 좀 더 많은 개발자들이 재주를 연마해서 단계적으로 증가시켜야 하고, 코드와 애플리케이션 간의 관계를 이해하고 개선하기 위해 계속적으로 조치를 취해야 함을 의미한다. 디자인 패턴은 이런 상황에 도움을 주는 자원이다.

액션스크립트 자체는 매우 간단하다. 기억해야 할 기본적인 문법, 훌륭한 API 레퍼런스와 근사한 IDE를 포함한다. 도전받는 것은 액션스크립트가 아니라 애플리케이션을 위한 아키텍처(구조)다. 진정한 고민거리는 해당 애플리케이션을 위해 어떤 클래스와 어떤 API를 사용할지 결정하는 것이다. 애플리케이션을 작성하면 할수록 반복적으로 나타나는 패턴이 있음을 느낄 것이다. 임무를 완수하고 빈번하게 발생하는 보편적인 문제를 해결하는 어떤 방법이 분명히 있다. 이러한 일반적인 해결책들이 디자인 패턴의 근간이다. 디자인 패턴의 상당수는 이미 존재한다. 디자인 패턴을 이해하기 위해 노력하고 의식적으로 이 패턴들을 적용하려고 노력한다면 애플리케이션을 작성하는 작업이 쉽지만은 않을 것이다. 좋은 결과를 가져올 수도 있지만 매번 공회전할 수도 있다. 디자인 패턴을 배우면 새로운 애플리케이션을 구조화하는 지능적이고 효율적인 방법을 확인할 수 있다.

이 책에서 설명하는 디자인 패턴은 오랜 시간을 거쳐 개발자들에 의해 만들어진 많은 패턴의 일부다. 이 책에서는 액션스크립트 애플리케이션 개발에 가장 유용하고 응용될 수 있을만한 패턴을 선택했다. 이런 패턴을 복음처럼 받들길 바라지는 않는다. 단지 애플리케이션을 개발할 때 좋은 가이드와 영감을 제공하려는 의도다. 설명할 패턴은 프로그래밍 전문가들에 의해 몇 년을 거쳐 검증되고 확인된 패턴이다. 패턴을 공부함으로써 여러분은 거인의 어깨에 설 수 있다. 하지만 이 패턴들이 절대적인 척도는 아니라는 사실을 잊지 말아야 한다. 전문가들이 유용하다고 발견한 것들이 반드시 그렇게 따라야 하는 것들이라는 의미는 아니다. 열린 마음으로, 하지만 심각하게 모든 내용을 읽기 바란다.


[ 이 책에서 다루는 내용 ]

■ 데코레이터 패턴(Decorator pattern)을 통해 두 개의 객체를 짝지어 놓거나 새로운 래퍼(wrapper)객체로 감싸줌으로써 런타임에서 다른 형태의 객체를 만들기
■ 복잡한 계층적인 구조를 컴포지트 패턴(Composite pattern)을 통해서 단순화하기
■ 복잡한 문자열 패턴을 정규표현식(regular expression)을 이용해 검색하기


[ 이 책의 대상 독자 ]

기본적인 프로그래밍에 대한 이해를 갖추고 있고 액션스크립트 3.0 원칙을 이해하고 변수, 표현, 선언문, 객체, 상속과 기본적인 클래스를 작성하는 방법을 어느 정도 이해하고 있다고 가정한다.

이 책은 대부분의 책이 객체지향 액션스크립트에 대한 설명을 끝내는 부분에서 시작한다. 많은 책이 클래스를 작성하는 방법을 알려주지만 이 책은 여러 가지 방법으로 클래스를 설계할 수 있는 다양한 방법을 제시한다. 이 책은 언제, 왜, 어떻게 합성과 상속을 이용하고 클래스를 어떻게 서로 연관시키고 패턴을 형성할지 말해준다.

저자/역자 소개

[ 저자 소개 ]

조이 로트
Schematic(schematic.com)에서 선임 소프트웨어 설계자로 근무하고 있으며, 코닥, 마이크로소프트, 소니 같은 고객들을 대상으로 코드를 작성했다. 『Actionscript Cookbook』, 『Programming Flash Communication Server』와 『Flash 8 Cookbook』 등 액션스크립트, 플래시와 관련된 각종 책의 저자이기도 하다.

대니 패터슨
플래시와 플렉스 기술 분야에 전문화된 컨설턴트다. 그 역시 Schematic(schematic.com)에서 선임 플래시 설계자로 근무하고 있다. 그는 어도비 커뮤니티 엑스퍼트(Adobe Community Expert)이고, MX 커뮤니티와 MX 개발자 저널에 40편이 넘는 글들을 기고했다. 어도비 프레스의 『Flash 8 Actionscript: Training from the Source book』의 공동 저자 중 한 명이다. 그 역시 마이크로소프트, 델, 아이비엠, 어도비, 스타츠, 엔비시 같은 다양한 고객들을 대상으로 많은 프로젝트를 진행했다.

[ 감수의 글 ]

플래시에 대해 고민하다 보면 부딪히는 한 가지 큰 장벽이 있습니다. “이것이 과연 개발인가?”라는 점이죠. 그런 생각을 품게 되는 건, 플래시가 시작 무렵에는 애니메이션을 위한 인터랙션 제작에 초점을 맞췄고 기능 개선을 통해 개발 분야까지 맞닿았기 때문입니다. 다시 말해 플래시는 디자인에서 태어나고 개발에서 성장했다고 볼 수 있습니다. 그러므로 다른 개발 언어와 비교해서 액션스크립트가 갖고 있는 원초적인 단점은 개발 언어로서의 견고성과 생산성입니다. 하지만 이를 극복하기 위한 많은 노력이 있었고 액션스크립트 3.0과 플렉스의 등장을 통해 이젠 더 이상 단점이 되지 않습니다.

그럼에도 불구하고 개발 언어로서 개발자에게 친숙하지 못한 이유는 레퍼런스와 라이브러리가 부족하기 때문입니다. 특히나 외국과 달리 개발자 수가 현저하게 적은 우리나라에서는 개발 환경이 더욱 더 궁핍했습니다. 이 때문에 한때 플래시 개발 붐이 일어났지만 잠재적인 가능성을 모두 펼쳐보지 못하고 안타깝게도 암흑 속에서 발버둥치고 말았습니다. 플래시 분야가 더욱 발전하려면 개발 언어로서의 지식 체계를 강화하는 게 최우선 과제일 것입니다.

따라서 『플래시/플렉스 개발자를 위한 액션스크립트 3.0 디자인 패턴』은 액션스크립트를 더욱 빛나게 할 책이라 말할 수 있습니다. 그동안 플래시 분야에 조금씩 알려졌던 디자인 패턴을 응용한 개발을 총 집대성한 책으로 플래시 개발자들의 갈증을 시원하게 날려줄 것입니다. 여타 프로그래밍 언어에서는 디자인 패턴에 관한 수많은 책이 출간됐지만 플래시는 거의 전무했다고 해도 과언이 아니듯 알려진 것이 별로 없었습니다. 특히나 이 책은 객체지향 프로그래밍의 완성인 액션스크립트 3.0에 대한 최초의 디자인 패턴 서적이므로 좀 더 정교한 애플리케이션 제작을 고민하는 여러분께 큰 힘이 될 것입니다.

디자인 패턴이란 좋은 설계를 위한 첫 걸음입니다. 무엇을 어떤 과정을 통해 만들어야 할지를 고민하고 구현하는 과정입니다. 개발자들은 늘 이런 고민을 합니다. “내가 만드는 것이 정답일까?”, “동작하긴 하는데 제대로 만든 것일까?” 늘 우리를 망설이게 만드는 질문들입니다. 과연 제대로 만들고, 잘 만드는 게 무엇인지 알고 싶다면 『플래시/플렉스 개발자를 위한 액션스크립트 3.0 디자인 패턴』을 보시길 권장합니다. 이 책을 통해 여러분은 플래시 무림에서 고수가 될 수 있습니다.

한 가지 첨언한다면 디자인 패턴만이 정답은 아닙니다. 디자인 패턴은 다양한 방법론들의 교집합이며 “개발을 하다 보면 이런 방법들을 많이 쓰더라”는 잘 정리한 정의들입니다. 그러므로 “이건 옳지 않아. 이건 완전한 MVC가 아니야”라는 식의 편견을 갖게 되면 디자인 패턴을 익히기가 어렵습니다. 조금 다르더라도 약간의 응용이라 생각하고 패턴들과 비슷하게 만들려고 노력하다 보면 언젠가는 거의 동일한 식으로 구현하는 자신을 발견하게 될 것입니다. 그저 흐르는 물에 몸을 맡겨보시면 이 책을 통해 학습하기가 매우 쉽습니다.

이 책의 역자는 저와 오랜 기간 함께 한 훌륭한 개발자로서 많은 서비스들을 멋지게 만든 친구입니다. 초고를 살펴본 바, 우리말로 훌륭히 번역해낸 역자의 노력에 박수를 보내며 여러분께 자신 있게 추천합니다. 제게 이런 멋진 기회를 준 것에 대해 정말 고맙습니다.

양주일
NHN UIT센터 센터장


[ 감수자 소개 ]

양주일
NHN의 UIT센터를 맡아 네이버, 한게임 등의 서비스 UI 개발을 총지휘하고 있다. 플래시 개발자로 Adobe 공인 플래시 커뮤니티 전문가이며, 플래시 관련 서적을 다수 집필했다.


[ 옮긴이의 말 ]

융통성 있는 프로그램을 만들고 싶은 액션스크립트 개발자들을 위해

초기에 웹사이트의 배너광고나 내비게이션을 제작하는 정도로 활용됐던 플래시는 액션스크립트의 기능이 추가되고 성능이 향상됨에 따라 게임이나 미디어플레이어를 비롯해 다양한 웹 애플리케이션을 만드는 데 있어서 차지하는 비중이 늘어나고 있습니다. 어도비 사에서도 웹 시장에 퍼지고 있는 RIA(Rich Internet Application) 환경에 발맞춰 업그레이드된 플렉스, AIR(Adobe Integrated Runtime)를 연달아 시장에 선보이면서 액션스크립트 개발자를 필요로 하는 프로젝트는 더욱 증가하는 추세입니다. 이처럼 액션스크립트 기반의 프로젝트 수가 늘어나고 규모도 커지면서 액션스크립트 개발자들도 “멋지게 돌아가기만 하는 프로그램”이 아니라 “멋지게 돌아가면서도 잘 구성된 유연한 코드”를 작성하기 위해 노력해야 합니다.

애플리케이션은 항상 변화하기 때문입니다. 액션스크립트를 사용하는 대다수 플렉스/플래시 프로젝트도 예외일 수 없습니다. 개발 단계에서 협업하는 동료 개발자와의 커뮤니케이션 과정에서 수정이 필요할 수도 있고 기획자나 디자이너로부터 변경된 요구사항을 반영해야 할 수도 있습니다. 특히 애플리케이션이 웹 기반으로 서비스돼 웹에 접근하는 불특정 다수의 사용자를 대상으로 한 것이라면 요즘 같이 사용자 경험(UX, User eXperience)이 강조되는 상황에서 더욱 빈번하게 변경사항이 발생할 수 있겠죠?

이렇게 불가피한 수정 작업을 좀 더 효율적으로 진행하고 더 나아가 근본적으로 변화에 안전하면서도 견고한 프로그램을 만들기 위해서 디자인 패턴을 학습할 필요가 있습니다. 저자의 말처럼 디자인 패턴은 설계나 개발 단계에서 겪었을지도 모르는 고민들을 오랜 기간 수많은 개발자들이 미리 경험해보고 이를 참고할만한 법칙처럼 정리해 놓은 것입니다. 이를 통해 효과적으로 클래스를 나누고, 각 클래스들을 적절히 구조화하고 배치해 개발하기에 앞서 애플리케이션의 큰 그림을 그리는 연습을 해보세요. 이 책이 디자인 패턴을 배우고자 하는 액션스크립트 개발자들에게 도움이 될 것입니다.

이 책은 액션스크립트를 주제로 액션스크립트 개발자를 위해 저술한 디자인 패턴 책입니다. 저자는 앞부분에서 적절한 기능에 따라 객체를 나누는 방법부터 “설계-개발-테스트”로 이어지는 프로그램의 올바른 개발 과정까지 자세하게 설명합니다. 중반부에서는 각 디자인 패턴을 적절한 예제와 함께 제시하고 있으며, 후반부에서는 이벤트 모델, E4X, 정규표현식 같이 액션스크립트의 고급 주제를 알기 쉽게 접근합니다. 특히 이 책에 포함된 플리커를 이용한 매쉬업, 게임 등의 예제 프로젝트들은 실무에 적용해봐도 손색이 없을 정도로 완성도가 높습니다. 이 책으로 동료 개발자와 스터디하고, 학습한 디자인 패턴을 바탕으로 함께 프로그램을 설계하고, 역할을 분담해 협업을 진행해 보십시오. 여러분의 내공이 분명히 향상될 것입니다.


[ 옮긴이 소개 ]

정호연 http://avata007.egloos.com
고려대학교에서 컴퓨터공학을 전공했으며 nhn 플래시게임 팀에서 다수의 플래시게임과 플래시멀티게임 플랫폼을 개발했고 현재는 nhn의 UIT 센터에서 플래시/플렉스를 활용해 웹애플리케이션을 만들고 있다. 음악을 좋아하며 현상을 모델링하고 시뮬레이션하는 것에 관심이 많다.

목차

목차
  • 1부 성공적인 프로젝트
  • 1장 애플리케이션 설계 ... 27
    • 분석 단계 ... 28
      • 유스케이스에 대한 소개 ... 29
      • 포멀 유스케이스 작성법 ... 30
      • 유스케이스 제작 ... 31
      • UML 사용 ... 32
    • 설계 단계 ... 33
      • CRC 카드 소개 ... 34
      • 클래스 결정 ... 35
      • 클래스 책임 결정 ... 35
      • 협력자의 결정 ... 36
      • 클래스 간 관계 정교화 ... 37
      • 공용 API 구성 ... 39
      • 설계를 위한 UML ... 40
    • 구현 단계 ... 41
      • 코딩 규약 ... 41
      • 캡슐화 ... 44
      • 상속과 합성 ... 49
      • 결합도 ... 54
    • 검사 ... 55
      • 기본적인 유닛 테스트 ... 57
      • 비동기적인 유닛 테스트 ... 61
    • 정리 ... 64
  • 2장 인터페이스 프로그래밍 ... 65
    • 인터페이스 정의 ... 66
      • 인터페이스 생성을 통한 인터페이스 정의 ... 68
      • 상속을 통한 인터페이스 정의 ... 70
      • 인터페이스 정의 방법의 결정 ... 71
    • 다형성 ... 72
      • 타입과 클래스의 차이점 ... 74
      • 런타임에서 결정 ... 74
    • 정리 ... 77
  • 2부 패턴
  • 3장 모델-뷰-컨트롤러 패턴 ... 81
    • MVC 구성 요소 소개 ... 82
      • 모델 ... 83
      • 뷰 ... 83
      • 컨트롤러 ... 83
      • 구성 요소 간의 관계 ... 83
    • 간단한 예제 작성 ... 84
      • 시계 데이터 모델 ... 85
      • 아날로그 시계 뷰 ... 88
      • 아날로그 시계 테스트 ... 90
      • 디지털 시계 뷰 ... 92
      • 디지털 시계 테스트 ... 94
    • 하나의 모델에 여러 개 뷰 적용 ... 95
    • 모델 구현 수정 ... 96
    • 컨트롤러 추가 ... 99
    • 정리 ... 104
  • 4장 싱글턴 패턴 ... 105
    • 객체 인스턴스화 ... 106
      • 인스턴스화의 제한 ... 107
      • 단 한 개의 인스턴스와 전역적인 접근 ... 108
    • 싱글턴과 정적 멤버(변수나 메소드) ... 110
    • 간단한 싱글턴 패턴 예제 ... 111
      • 싱글턴 클래스 작성 ... 111
      • 싱글턴 클래스 호출 ... 113
    • 환경 설정 프레임워크 작성 ... 113
      • XML 문서 작성 ... 113
      • Settings 클래스 작성 ... 114
      • Settings 클래스 호출 ... 117
    • 정리 ... 118
  • 5장 팩토리 패턴과 템플릿 메소드 패턴 ... 119
    • 추상 클래스 ... 119
    • 템플릿 메소드 ... 120
    • 팩토리 메소드 ... 123
    • 정리 ... 127
  • 6장 프록시 패턴 ... 129
    • 가상 프록시 ... 130
      • 이미지 로더 예제 ... 130
      • 게으른 직렬화 예제 ... 132
    • 원격 프록시 ... 137
      • 플리커 검색 프록시 예제 ... 137
      • flash.utils.Proxy ... 139
    • 어댑터와 퍼사드 패턴 ... 144
    • 정리 ... 144
  • 7장 이터레이터 패턴 ... 147
    • 이터레이션 문제에 대한 이해 ... 147
    • 이터레이터 요소에 대한 이해 ... 150
      • 이터레이터 인터페이스 ... 151
      • 구상 이터레이터 ... 152
      • 컬렉션 인터페이스 ... 154
      • 구상 컬렉션 ... 155
    • 이터레이터 이용 ... 156
    • 널의 이터레이터 사용 ... 157
    • 정리 ... 158
  • 8장 컴포지트 패턴 ... 159
    • 구성 요소 인터페이스 ... 160
    • 말단 요소 ... 163
    • 컴포지트 요소 ... 164
    • 파일 시스템 예제 제작 ... 165
    • 정리 ... 172
  • 9장 데코레이터 패턴 ... 173
    • 데코레이터 패턴의 이해 ... 174
      • 데코레이터/데코레이티드 인터페이스 ... 175
      • 구상 데코레이티드 클래스 ... 175
      • 추상 데코레이터 클래스 ... 176
      • 구상 데코레이터 클래스 ... 177
    • 읽기 데코레이터 작성 ... 179
      • 데코레이터/데코레이티드 인터페이스의 작성 ... 179
      • 추상 리터 클래스 정의 ... 180
      • 구상 데코레이티드 클래스 정의 ... 183
      • 추상 데코레이터 클래스 작성 ... 183
      • 첫 번째 구상 데코레이터 클래스 정의 ... 184
      • 데코레이터 테스트 ... 186
      • 부가적인 구상 데코레이터 클래스 정의 ... 187
      • 새로운 데코레이티드 타입 정의 ... 189
      • 데코레이터 장식 ... 191
    • 시각적이고 교환 가능한 데코레이터 작성 ... 193
      • 공통 인터페이스 정의 ... 194
      • 구상 데코레이티드 클래스 정의 ... 195
      • 데코레이터 클래스 정의 ... 197
      • 비가환적인 데코레이터 클래스 추가 ... 200
    • 정리 ... 205
  • 10장 커맨드 패턴 ... 207
    • 커맨드 패턴의 이해 ... 208
      • 인터페이스(커맨드 인터페이스) ... 208
      • 구상 커맨드와 수신자 ... 209
      • 클라이언트와 호출자 ... 210
    • 간단한 커맨드 애플리케이션 작성 ... 211
      • 커맨드 클래스 작성 ... 211
      • 수신자 타입 작성 ... 214
      • 버튼 작성 ... 214
      • 커맨드 컨테이너 작성 ... 216
      • 애플리케이션 실행 ... 218
    • 되돌리기 명령 작성과 명령 히스토리 보존 ... 220
    • 되돌리기 가능한 애플리케이션 작성 ... 223
      • 되돌리기 가능한 커맨드 작성 ... 223
      • 커맨드 히스토리 기록 ... 226
      • 되돌리기 버튼 추가 ... 227
    • 재실행 가능한 애플리케이션 작성 ... 229
      • IRedoableCommand 구현 ... 229
      • 재실행(Redo) 버튼 추가 ... 231
    • 커맨드 패턴을 이용한 Proximity 게임 제작 ... 231
      • 플레이어 데이터 클래스 정의 ... 232
      • 게임 플레이어를 위한 컬렉션 클래스 정의 ... 233
      • 게임 조각 정의 ... 234
      • GameBoardData 클래스 정의 ... 236
      • GamePlayCommand 클래스 정의 ... 240
      • GameFactory 클래스 정의 ... 242
      • 게임 조각 뷰와 컨트롤러 클래스 정의 ... 243
      • 게임판 뷰와 컨트롤러 정의 ... 246
      • 메인 클래스 정의 ... 247
    • 정리 ... 249
  • 11장 메멘토 패턴 ... 251
    • Proximity 게임에서 실행을 되돌리기 위한 메멘토 패턴 사용 ... 257
      • 메멘토 타입 정의 ... 258
      • 오리지네이터 작성 ... 258
      • 되돌릴 수 있는 명령 타입 정의 ... 259
      • CommandFactory 업데이트 ... 261
      • 메인 클래스 업데이트 ... 262
    • Proximity 게임에서 명령 다시 실행 기능을 만들기 위한 메멘토 패턴 ... 263
      • 다시 실행 명령 정의 ... 263
      • Factory 클래스 편집 ... 265
      • 메인 클래스 편집 ... 265
    • 정리 ... 266
  • 12장 스테이트 패턴 ... 267
    • 간단한 스테이트 예제 ... 268
      • SimpleShooter 클래스 작성 ... 268
      • 메인 예제 클래스 작성 ... 269
      • 이 예제의 문제점 ... 271
    • 상태 캡슐화 ... 271
      • 슈터 상태 인터페이스 ... 272
      • 상태 객체 ... 272
      • ShooterStateMachine 클래스 ... 274
      • 메인 예제 클래스 작성 ... 276
    • 추상 클래스 이용 ... 277
      • 추상 슈터 상태 ... 277
      • 상태 객체 ... 279
      • 슈터 상태 머신 ... 281
      • 메인 예제 클래스 작성 ... 282
    • 전이 ... 283
      • 상태 머신에서 정의된 전이 ... 284
      • 상태 객체에서 정의된 전이 ... 286
    • 정리 ... 291
  • 3부 액션스크립트의 고급 주제
  • 13장 이벤트를 활용한 작업 ... 295
    • 이벤트 이해 ... 295
    • 이벤트 사용 ... 297
      • 이벤트 구성 요소 이해 ... 297
      • 리스너 등록 ... 298
      • 이벤트 리스너 제거 ... 301
      • 이벤트 단계 이해 ... 301
    • 이벤트 디스패처 작성 ... 307
      • 이벤트 객체 이해 ... 307
      • 이벤트 target 속성 이해 ... 308
      • 이벤트 기본 동작 ... 308
      • 전파의 중단 ... 309
      • 상속을 통한 이벤트 디스패치 ... 309
      • IEventDispatcher 인터페이스 ... 310
    • 이벤트로 작업하는 예제 ... 311
      • IconButton 클래스 작성 ... 312
      • Main 클래스 작성 ... 313
    • 정리 ... 315
  • 14장 데이터 전송과 로딩 ... 317
    • 텍스트 로딩 ... 318
      • LimerickData 클래스 작성 ... 320
      • LimerlickView 클래스 작성 ... 322
      • 메인 클래스 작성 ... 323
    • 변수의 전송과 로딩 ... 324
      • 변수 전송 ... 324
      • 변수 로딩 ... 327
    • XML 전송과 로드 ... 330
      • XML 전송 ... 330
      • XML 로드 ... 331
    • 웹서비스 이용 ... 331
    • 플래시 리모팅 이용 ... 332
      • 플래시 리모팅 기초 이해 ... 333
      • 플래시 리모팅 호출 제작 ... 334
    • 데이터 통신 최적화 ... 337
      • 데이터 캐싱 ... 337
      • 요청 쌓아두기와 담아두기 ... 341
    • 정리 ... 342
  • 15장 E4X(XML) ... 343
    • XML 객체 생성 ... 345
    • 속성 접근자 ... 346
    • XML 필터링 ... 348
    • XMLList를 통한 반복 ... 349
    • 네임스페이스 ... 350
    • XML 데이터 전송과 로딩 ... 352
    • 간단한 SOAP 예제 ... 352
      • 사용자 정의 이벤트 작성 ... 354
      • 웹서비스 클래스 작성 ... 355
      • 메인 클래스 작성 ... 357
    • 정리 ... 360
  • 16장 정규표현식 ... 361
    • RegExp 클래스 소개 ... 362
    • 정규표현식에 의한 작업 ... 363
      • 정규표현식의 Boolean 테스트 ... 364
      • 일치하는 하위 문자열의 인덱스 번호 검색 ... 364
      • 일치하는 하위 문자열의 검색 ... 364
      • 정규표현식을 이용한 하위 문자열의 대체 ... 366
    • 정규표현식 flag 변수 활용 ... 367
      • 전역 flag ... 368
      • 대소문자 무시 flag ... 368
      • 멀티라인 flag ... 369
      • 개행 flag와 짝을 이루는 점 ... 370
      • 확장 flag ... 370
    • 메타캐릭터와 메타시퀀스 이해 ... 371
      • Character 클래스 이용 ... 373
      • 수량 한정자에 의한 작업 ... 374
    • 정규표현식 그룹 이용 ... 374
    • 정규표현식을 이용한 Mad Libs 애플리케이션 작성 ... 378
      • 데이터 모델 클래스 작성 ... 380
      • 입력 제어부 작성 ... 385
      • 뷰 클래스 작성 ... 386
      • 메인 클래스 정의 ... 388

관련 블로그 글

『액션스크립트 3.0 디자인 패턴』내공을 쑥! 높이세요
사용자 삽입 이미지
플래시/플렉스 개발자를 위한
액션스크립트 3.0 디자인 패턴
조이 로트, 대니 패터슨 지음 | 정호연 옮김 | 양주일 감수
400쪽 | 28,000원 | 2008년 10월 28일 출간예정

방금 신간 소개 글을 올리려고 블로그 새 창을 열고 글을 쓰고, 표지 그림 파일을 올리려고 글을 쓰는데, '이게 웬걸' 파일 업로드 창이 뜨지를 않는 겁니다. 이게 웬일이지 싶어서 다른 컴퓨터에 가서 해봤더니 딴 직원 컴퓨터에서는 잘 열리네요. -0-; 헐. 어쩌나. 놀래서.... 우리 블로그의 플랫폼인 텍스트큐브의 도우미 페이지에 갔더니 누군가 저와 똑같은 질문을 올리신 분이 있었네요. ==;; 이에 lunamoth님이 답글을 남기셨군요.

텍스트큐브(태터툴즈)의 다중 업로드 지원을 위한 플래시업로더가 Flash 10 을 지원하지 않아서 발생하는 문제로 생각됩니다.
며칠 전부터 플래시 플레이어 버전 10으로 갈아타라는 메시지가 뜨길래, 새거면 다 좋은 줄 알고 클릭해서 다운을 받아 설치를 했더랬죠. 그랬더니 텍스트큐브에선 미처 플래시 플레이어 10을 대비하지 못하셨나 보군요. 이런 낭패. 해당 프로그램을 삭제하고, 다시 플레이어 9으로 다운그레이드하니 천만다행. 이젠 잘 되네요. --;; 하필이면 플래시 관련 신간을 올리려던 참에 플래시가 말썽을 -0-;;

컴퓨터는 왜 이리도 어려운 걸까요. -0-;; 경우의 수는 남발을 하고, 대비해야 하는 상황은 너무나 많고. 하지만 또 어느 정도 대비책은 얼추 보입니다. 좀전만 해도 다행히 텍스트큐브 질문과 답변 포럼을 찾아 문제를 해결할 수 있었을 테니까요. 안 그랬으면 또 에이콘을 지켜주는(?) 정의의 흑기사 양모님을 불렀을지도 모르겠네요. "도와줘요~ 뽀빠이~"하구요. (오늘도 양모석호님은 한 건 해주셨거든요. 아니 2건이었네요. 다시 한번 감사해요. ^^;)

오늘의 책 소개와 맞는 이야기일는지는 모르겠지만 애플리케이션을 작성하다 보면 반복적으로 나타나는 패턴이 있음을 분명히 느끼게 됩니다. 임무를 완수하고, 빈번하게 발생하는 보편적인 문제를 해결하는 방법을 찾게 되죠. 이런 일반적인 해결책을 고민한 것이 바로 "디자인 패턴"의 근간입니다.

디자인 패턴은 오랜 시간을 거쳐 개발자들이 만들고 집대성해왔습니다. 그 동안 수많은 "디자인 패턴"책이 독자들의 사랑을 받아왔죠. 그런데 유독 액션스크립트에 대한 디자인 패턴 책은 전무하다고 할 만큼 흔치가 않았습니다. 최근 모 출판사에서도 원서는 출간되기는 했지만요. 그 까닭으로는 액션스크립트 2.0까지는 언어로서의 특징을 모담기에는 그 역량이 부족했던 탓도 있을까요.

다른 개발 언어에 비해 액션스크리트는 개발 언어로서의 견고함과 생산성이 미비했던 게 사실이었습니다. 레퍼런스와 라이브러리도 부족했구요. 그러나 액션스크립트 3.0에서 드디어 객체지향 프로그래밍의 성격을 완성하면서 드디어 디자인 패턴 책이 탄생하게 됐습니다.

플래시/플렉스 개발자를 위한 액션스크립트 3.0 디자인 패턴』은 액션스크립트를 더욱 빛나게 할 책이라 말할 수 있습니다. 그동안 플래시 분야에 조금씩 알려졌던 디자인 패턴을 응용한 개발을 총 집대성한 책으로 플래시 개발자들의 갈증을 시원하게 날려줄 것입니다.

여타 프로그래밍 언어에서는 디자인 패턴에 관한 수많은 책이 출간됐지만 플래시는 거의 전무했다고 해도 과언이 아니듯 알려진 것이 별로 없었습니다. 특히나 이 책은 객체지향 프로그래밍의 완성인 액션스크립트 3.0에 대한 최초의 디자인 패턴 서적이므로 좀 더 정교한 애플리케이션 제작을 고민하는 여러분께 큰 힘이 될 것입니다.
감수의 글 중에서,
양주일 / NHN UIT센터장
양주일님은 그야말로 휘하의 모든 직원을 'YG패밀리'라는 이름으로 에이콘 책 번역에 투입해.. 주셨... 다고 하면 좀 과장일까요? 방탄 Ajax를 번역한 장정환 랩장님, 성공하는 UCC 사이트를 위한 플래시 비디오 실전 프로젝트를 번역한 조호영 팀장님에 이어 이번 책을 번역한 정호연님까지. 최근 친구들을 모조리 번역계로 발을 들여놓게 하신 early bird 민병호님도 계시고 선후배들을 많이 소개해준 강유님, 제갈호준님, 업계 동료들을 끌어들이신 박재호님 등  대부분 알음알음으로 선후배들을 소개해주시는 분들도 많지만, 이렇게 휘하의 부하(?) 직원을 모두 번역계로 끌어들이신 분은 흔치 않으실 겁니다. ;; 게다가 모종의 "얼굴(!) 프로젝트"를 추진해주시기도 하니 너무너무 감사할 따름입니다. :) 천국 가실 거에요. ^^;;

저자는 앞부분에서 적절한 기능에 따라 객체를 나누는 방법부터 “설계-개발-테스트”로 이어지는 프로그램의 올바른 개발 과정까지 자세하게 설명합니다. 중반부에서는 각 디자인 패턴을 적절한 예제와 함께 제시하고 있으며, 후반부에서는 이벤트 모델, E4X, 정규표현식 같이 액션스크립트의 고급 주제를 알기 쉽게 접근합니다.

특히 이 책에 포함된 플리커를 이용한 매쉬업, 게임 등의 예제 프로젝트들은 실무에 적용해봐도 손색이 없을 정도로 완성도가 높습니다. 이 책으로 동료 개발자와 스터디하고, 학습한 디자인 패턴을 바탕으로 함께 프로그램을 설계하고, 역할을 분담해 협업을 진행해 보십시오. 여러분의 내공이 분명히 향상될 것입니다.
- 옮긴이의 말 중에서, 정호연
감수를 보신 양주일님의 극찬(!)을 받으며 깔끔하게 번역을 마무리해주신 정호연님 정말 고생 많으셨습니다. 플래시/플렉스 개발자, 특히나 중급을 넘어서 뭔가 한 단계 내공을 높이고 싶은 분들께 분명히 꼭 필요한 책이 될 거라고 생각합니다. 사무실을 딱 들어설 때 가수 조성모가 들어오는 줄 알고 깜딱 놀랜 날이 엊그제 같은데 벌써 책이 출간됐네요. :) 정말 닮았냐구요? ... 의심이 많은 여러분을 위한 짤방 하나.

[#M_<<< 정말 조성모를 닮았는지 확인하고 싶으신 분만 클릭.|>>> 정면 모습은 책에 담긴 역자사진에서 확인해주세요! :)|
사용자 삽입 이미지
_M#]
좀더 달리고 싶었지만 10월에 독자를 만날 마지막 책이 될 듯한『
플래시/플렉스 개발자를 위한 액션스크립트 3.0 디자인 패턴』은 YES24, 교보문고, 강컴, 알라딘, 인터파크에서 예약판매 중입니다.
CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

[ p88 아래에서 4행 ]
protected function draw(event:Event):void {
→ protected function draw(event:Event = null):void {

[ p116 12행 ]
return _data.cs::property.@id == qname.@value;
→ return _data.cs::property.(@id == qname).@value;

[ p125 코드 6행 ]
varfield:IField=createField();
→ var field:IField = createField();