카테고리 없음 2009. 5. 15. 17:28


HEAD FIRST DESIGN PATTERNS
참신한 유머와 퍼즐, 비주얼한 그림 그리고 친숙한 대화 스타일 등 색다른 시도로 주목받는 Head First 시리즈의 DESIGN PATTERNS 편. 디자인 패턴을 사용하면 다른 사람들의 노력과 경험을 바로 활용해서 시간과 에너지를 절약할 수 있다. 이 책은 중요한 디자인 패턴과 사용 시기 및 이유, 즉시 디자인에 적용하는 방법, 패턴의 근간이 되는 객체지향 디자인 원칙 등의 내용 등을 다루고 있다.

신경생물학, 인지과학, 학습이론 같은 분야의 최신 연구 결과를 바탕으로 만든 이 책을 읽다 보면 패턴들이 머리 속에 쉽게 들어오게 될 것이다. 이 책을 활용하면 소프트웨어 디자인 문제 해결 능력이 증대되고, 동료들과 패턴에 대해 의논할 때 구사할 수 있는 패턴 관련 용어에도 능통하게 도와줄 것이다.


목차

1. 디자인 패턴 소개
SimUDuck
조는 상속에 대해서 생각을 해 봅니다...
인터페이스는 어떨까요?
소프트웨어 개발에 있어서 바뀌지 않는 것
바뀌는 부분과 그렇지 않은 부분 분리하기
오리의 행동 디자인
Duck 코드 테스트
동적으로 행동을 지정하는 방법
캡슐화된 행동을 큰 그림으로 바라봅시다
"A는 B이다"보다"A에는 B가 있다"가 나을 수 있습니다
스트래티지 패턴
전문 용어의 위력
디자인 패턴을 어떻게 사용하나요?
디자인 도구상자
연습문제 정답

2. 옵저버 패턴
기상 모니터링 애플리케이션 개요
옵저버 패턴을 만나봅시다
출판사+구독자=옵저버 패턴
5분 드라마: 옵저버와 주제
옵저버 패턴의 정의
느슨한 결합의 위력
기상 스테이션 설계
기상 스테이션 구현
자바 내장 옵저버 패턴 사용하기
java.util.Observable의 단점
디자인 도구상자
연습문제 정답

3. 데코레이터 패턴
스타버즈에 오신 것을 환영합니다
OCP(Open-Closed Principle)
데코레이터 패턴
데코레이터를 써서 음료 주문을 완성하는 방법
데코레이터 패턴의 정의
Beverage 클래스를 장식해 봅시다
스타버즈 코드를 만들어 봅시다
데코레이터가 적용된 예: 자바 I/O
자바 I/O 데코레이터
디자인 도구상자
연습문제 정답

4. 팩토리 패턴
"new"는"구상 객체"를 뜻합니다.
객체마을 피자
객체 생성 부분을 캡슐화합시다
간단한 피자 팩토리를 만들어 봅시다
간단한 팩토리 정의
피자 가게 프레임워크
서브클래스에서 결정되는 것
PizzaStore를 만듭시다
팩토리 메소드 선언
팩토리 메소드 패턴 만나기
병렬 클래스 계층구조
팩토리 메소드 패턴의 정의
심하게 의존적인 PizzaStore
객체 의존성 살펴보기
의존성 뒤집기 원칙
그동안 피자 가게에서는...
원재료군
원재료 공장 만들기
추상 팩토리 살펴보기
무대 뒤에서
추상 팩토리 패턴 정의
팩토리 메소드 패턴과 추상 팩토리 패턴
디자인 도구상자
연습문제 정답

5. 싱글턴 패턴
유일무이한 객체
리틀 리스퍼
고전적인 싱글턴 패턴 구현법
싱글턴의 심경 고백
초콜릿 공장
싱글턴 패턴의 정의
허쉬, 문제가 생겼다
JVM이 되어 봅시다
멀티스레딩 문제 해결 방법
싱글턴 관련 Q&A
디자인 도구상자
연습문제 정답

6. 커맨드 패턴
홈 오토메이션
리모컨
클래스들을 살펴 봅시다
그동안 식당에서는...
서로 어떤 식으로 연관되는지 조금 더 자세히 봅시다
객체마을 식당 등장인물 및 그 역할
객체마을 식당과 커맨드 패턴
첫 번째 커맨드 객체
커맨드 패턴의 정의
커맨드 패턴과 리모컨
리모컨 코드
리모컨 테스트
API 문서를 만들어 봅시다...
작업취소 기능을 구현할 때 상태를 사용하는 방법
리모컨에 파티 모드를...
매크로 커맨드 사용 방법
커맨드 패턴 활용: 요청을 큐에 저장하기
커맨드 패턴 활용: 요청을 로그에 기록하기
디자인 도구상자
연습문제 정답

7. 어댑터 패턴과 퍼사드 패턴
어댑터
객체지향 어댑터
어댑터 패턴
어댑터 패턴의 정의
객체와 클래스 어댑터
오늘의 주제: 객체 어댑터와 클래스 어댑터
어댑터 실전 예제
Enumeration을 Iterator에 적응시키기
오늘의 주제: 데코레이터 패턴과 어댑터 패턴
홈 씨어터
전등, 카메라, 퍼사드!
홈 씨어터 퍼사드 구축
퍼사드 패턴의 정의
최소 지식 원칙
디자인 도구상자
연습문제 정답

8. 템플릿 메소드 패턴
커피 및 홍차 클래스 만들기
커피 및 홍차 추상화
디자인에 대해 좀더 생각해 봅시다...
prepareRecipe() 추상화
한번 정리해 봅시다...
템플릿 메소드 패턴
차를 만들어 볼까요?
템플릿 메소드로부터 무엇을 얻을 수 있었나요?
템플릿 메소드 패턴의 정의
코드 탐구
템플릿 메소드와 후크
후크 활용
한번 테스트해 볼까요?
헐리우드 원칙
헐리우드 원칙과 템플릿 메소드 패턴
야생의 템플릿 메소드
템플릿 메소드를 이용해서 정렬하기
오리를 정렬해야 합니다...
Duck 객체 대소 비교
오리 정렬 메이킹 필름
스윙 프레임
애플릿
오늘의 주제: 템플릿 메소드 패턴과 스트래티지 패턴
디자인 도구상자
연습문제 정답

9. 이터레이터와 컴포지트 패턴
객체마을 식당과 객체마을 팬케이크하우스 합병
루와 멜의 메뉴 구현법
반복을 캡슐화할 수 있을까요?
이터레이터 패턴을 만나 봅시다
DinerMenu에 Iterator를 추가합시다
디자인 살펴보기
java.util.Iterator 적용하기
한번 정리해 볼까요?
이터레이터 패턴의 정의
단일 역할 원칙
반복자와 컬렉션
자바 5에서의 반복자와 컬렉션
괜찮을 것 같았는데...
컴포지트 패턴의 정의
컴포지트 패턴을 이용한 메뉴 디자인
메뉴 구현
이터레이터
널 반복자
이터레이터 패턴과 컴포지트 패턴의 조화
디자인 도구상자
연습문제 정답

10. 스테이트 패턴
상태 구현 방법?
상태 기계의 기초
뽑기 기계 구현
이럴 줄 알았다니까요... 변경 요청 들어왔습니다.
지저분한 상태
State 인터페이스 및 클래스 정의
상태 클래스 구현
뽑기 기계 수정
스테이트 패턴의 정의
스테이트 패턴 vs. 스트래티지 패턴
정상성 점검
하마터면 그냥 넘어갈 뻔 했네요
디자인 도구상자
연습문제 정답

11. 프록시 패턴
뽑기 기계 모니터링
'원격 프록시'의 역할
RMI의 기초
뽑기 기계 원격 프록시
무대 뒤의 원격 프록시
프록시 패턴의 정의
가상 프록시
CD 커버 뷰어 가상 프록시 디자인
무대 뒤의 가상 프록시
자바 API 프록시
5분 드라마: 주 객체 보호
동적 프록시 만들기
프록시 동물원
디자인 도구상자
연습문제 정답

12. 컴파운드 패턴
컴파운드 패턴
오리와의 재회
어댑터 추가
데코레이터 추가
팩토리 추가
컴포지트 및 이터레이터 패턴 추가
옵저버 패턴 추가
패턴 정리
클래스 다이어그램
MVC 송
MVC와 디자인 패턴
패턴 안경으로 MVC 바라보기
MVC를 이용한 박자 조절
모델

컨트롤러
전략 패턴 탐색
모델 적응시키기
HeartController 준비
MVC와 웹
디자인 패턴과 모델 2
디자인 도구상자
연습문제 정답

13. 패턴과 함께 하는 행복한 삶
객체마을 가이드
디자인 패턴의 정의
디자인 패턴의 정의 - 조금 더 자세히
포스가 함께 하기를...
패턴 카탈로그
패턴을 찾는 방법
디자인 패턴 작가가 되고 싶으신가요?
디자인 패턴 분류하기
패턴으로 생각하기
패턴을 대하는 마음가짐
전문 용어의 위력을 잊지 맙시다
용어를 공유하는 다섯 가지 방법
4인방과 함께 하는 객체마을 여행
패턴을 찾아 떠나는 여행...
기타 디자인 패턴 관련 자료
패턴 동물원
사악한 안티 패턴 섬멸하기
디자인 도구상자
객체마을을 떠나며...

14. 부록: 기타 패턴
브리지 패턴
빌더 패턴
역할 사슬 패턴
플라이웨이트 패턴
인터프리터 패턴
미디에이터 패턴
메멘토 패턴
프로토타입 패턴
비지터 패턴

posted by 나는너의힘
: