목차
CHAPTER 0 디자인 패턴
0.1 패턴
0.2 소프트웨어 공학
0.3 설계 원칙
0.4 GoF
0.5 패턴의 요소
0.6 유지 보수
0.7 정리
[PART 1 생성 패턴 - 추상화를 통해 객체 생성하기]
CHAPTER 1 팩토리 패턴
1.1 클래스와 객체지향
1.2 의존성
1.3 의존성 주입
1.4 의존 관계의 문제점
1.5 팩토리 패턴
1.6 단순 팩토리
1.7 장점과 단점
1.8 관련 패턴
1.9 정리
CHAPTER 2 싱글턴 패턴
2.1 객체 생성
2.2 유일한 객체
2.3 싱글턴
2.4 싱글턴 설계
2.5 인스턴스 생성
2.6 정적 클래스
2.7 싱글턴 확장
2.8 자원 처리
2.9 관련 패턴
2.10 정리
CHAPTER 3 팩토리 메서드 패턴
3.1 추상화
3.2 패턴 확장
3.3 상위 클래스
3.4 하위 클래스
3.5 매개변수
3.6 관련 패턴
3.7 정리
CHAPTER 4 추상 팩토리 패턴
4.1 팩토리 메서드
4.2 그룹
4.3 팩토리 그룹
4.4 공장 추가
4.5 부품 추가 실습
4.6 패턴 결합
4.7 장점과 단점
4.8 관련 패턴
4.9 정리
CHAPTER 5 빌더 패턴
5.1 건축물
5.2 객체 실습
5.3 빌더
5.4 알고리즘
5.5 생성 요청
5.6 관련 패턴
5.7 정리
CHAPTER 6 프로토타입 패턴
6.1 생성
6.2 복사
6.3 프로토타입 패턴
6.4 특징
6.5 관련 패턴
6.6 정리
[PART 2 구조 패턴 - 상속과 합성을 사용해 객체 확장하기]
CHAPTER 7 어댑터 패턴
7.1 오래된 코드
7.2 잘못된 코드
7.3 어댑터
7.4 클래스 어댑터
7.5 객체 어댑터
7.6 설계
7.7 관련 패턴
7.8 정리
CHAPTER 8 브리지 패턴
8.1 복잡한 코드
8.2 상속
8.3 패턴 설계 1
8.4 패턴 설계 2
8.5 장점과 단점
8.6 관련 패턴
8.7 정리
CHAPTER 9 복합체 패턴
9.1 객체를 포함하는 객체
9.2 복합체의 구조적 특징
9.3 투명성을 활용한 동일한 설계
9.4 추상화를 통한 일반화 작업
9.5 Leaf
9.6 Composite
9.7 패턴 결합
9.8 적용 사례 1
9.9 적용 사례 2
9.10 적용 사례 3
9.11 장단점 및 결과
9.12 관련 패턴
9.13 정리
CHAPTER 10 장식자 패턴
10.1 기능 추가
10.2 조건 추가
10.3 확장
10.4 객체에 추가 장식하기
10.5 기본 실습
10.6 장단점 및 결과
10.7 관련 패턴
10.8 정리
CHAPTER 11 파사드 패턴
11.1 협업을 위한 분리 작업
11.2 파사드 패턴을 응용한 API
11.3 파사드를 이용한 단순화
11.4 최소 지식 원칙
11.5 기본 실습
11.6 파사드 패턴의 효과
11.7 관련 패턴
11.8 정리
CHAPTER 12 플라이웨이트 패턴
12.1 메모리 자원
12.2 자원 공유
12.3 상태 구분
12.4 패턴 실습
12.5 관련 패턴
12.6 정리
CHAPTER 13 프록시 패턴
13.1 객체를 대행하는 프록시
13.2 객체 가로채기
13.3 객체 분리
13.4 프록시 생성
13.5 행위를 처리하는 핸들러
13.6 동적 프록시
13.7 원격 프록시
13.8 가상 프록시
13.9 보호용 프록시
13.10 스마트 참조자
13.11 정리
[PART 3 행동 패턴 - 복합 구조로 객체의 책임 분산하기]
CHAPTER 14 반복자 패턴
14.1 객체의 집합
14.2 배열
14.3 집합체
14.4 반복자
14.5 작업 분할
14.6 관련 패턴
14.7 정리
CHAPTER 15 명령 패턴
15.1 명령 처리
15.2 명령 패턴의 구성과 특징
15.3 인터페이스
15.4 명령
15.5 리시버
15.6 인보커
15.7 클라이언트
15.8 undo
15.9 장단점
15.10 관련 패턴
15.11 정리
CHAPTER 16 방문자 패턴
16.1 데이터 처리
16.2 분리
16.3 원소 객체
16.4 방문자
16.5 반복자
16.6 관련 패턴
16.7 정리
CHAPTER 17 체인 패턴
17.1 제어문
17.2 동작조건
17.3 행동 분리
17.4 사슬 연결
17.5 체인 패턴
17.6 미들웨어
17.7 관련 패턴
17.8 정리
CHAPTER 18 감시자 패턴
18.1 감시자
18.2 구성
18.3 관계
18.4 주체
18.5 감시자
18.6 동작 실습
18.7 활용
18.8 관련 패턴
18.9 정리
CHAPTER 19 중재자 패턴
19.1 중재
19.2 중재자
19.3 동료 객체
19.4 기본 실습
19.5 관련 패턴
19.6 정리
CHAPTER 20 상태 패턴
20.1 상태란
20.2 상태 처리
20.3 패턴 구현
20.4 객체 생성
20.5 상태 전환
20.6 실습
20.7 효과
20.8 패턴 유사성
20.9 적용 사례
20.10 정리
CHAPTER 21 메멘토 패턴
21.1 상태 저장
21.2 캡슐화
21.3 메멘토
21.4 Originator 클래스
21.5 CareTaker 클래스
21.6 관련 패턴
21.7 정리
CHAPTER 22 템플릿 메서드 패턴
22.1 프로그램의 구조
22.2 템플릿
22.3 일반화
22.4 추상화
22.5 템플릿 메서드
22.6 의존성 디자인
22.7 관련 패턴
22.8 정리
CHAPTER 23 전략 패턴
23.1 문제
23.2 알고리즘
23.3 분리
23.4 인터페이스
23.5 전략
23.6 전략 실행
23.7 적용 사례
23.8 관련 패턴
23.9 정리
CHAPTER 24 인터프리터 패턴
24.1 언어
24.2 언어 설계
24.3 처리계
24.4 중간 코드
24.5 해석
24.6 클래스 표현
24.7 관련 패턴
24.8 정리
오프라인, 온라인 서점에서 IT 관련 도서를 조금만 훑어봐도 객체지향, 디자인패턴에 관한 무수히 많은 책들이 있습니다. 가장 유명한 GoF의 책부터 시작하여, OOP의 개념과 디자인패턴을 특정언어로 다루는 도서들이 많습니다.
결론부터 말하자면, 개인적으로 이 책을 읽은 후 서점에 있는 수 많은 책들 중 강하게 누군가에 추천할만한 책이라고 생각하진 않습니다. (개인적인 의견입니다.)
많은 책들이 Java, C++, C# 등의 언어로 씌어져 있으나 이 책은 특이하게 PHP로 예제가 작성되어 있습니다. 그 점은 눈에 띄게 특이하지만 디자인패턴은 특정 언어에 종속되는 기법이 아니기에 이 책의 큰 메리트라고 보이진 않습니다.
구성이 좋다?, 내용이 좋다? 라고 말하기에는 조금 주저하게 됩니다. 다른 출판된 많은 책들도 유사한 책들이 많기에 그 책들과 비교했을 때도 큰 장점이 뭘까 싶습니다.
또한 가장 힘들었던것은 오탈자 입니다. 개인의 성향이기도 하지만 오탈자를 대수롭지 않게 넘어가는 분들도 있겠지만 개인적으로 저는 오탈자로 인해 책에 집중도가 많이 떨어지게 되었습니다.
솔직히 추천하고 싶지는 않습니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'Book' 카테고리의 다른 글
[Book Review] 레트로의 유니티 게임 프로그래밍 에센스 (0) | 2022.03.04 |
---|---|
[Review] 마법의 연금 굴리기 (0) | 2021.12.28 |
[BOOK] 개발자에서 아키텍트로 (3) | 2021.06.20 |
클린 아키텍처 (소프트웨어 구조와 설계의 원칙) (3) | 2021.04.17 |
BPF 리눅스 관측 가능성 향상하기 (1) | 2020.06.28 |