감수의 글 ... 6 옮긴이의 말 ... 8 감사의 글 ... 10 저자 소개 ... 11 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 정리 ... 390 찾아보기 ... 391