ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Review] 쉽게 배워 바로 써먹는 디자인 패턴
    Review 2020. 10. 25. 22:51

    한빛 미디어 리뷰어로 채택되어 본 책을 리뷰할 수 있게 되었습니다. 

     

    디자인 패턴에 대한 관심 및 질문은 개발자들 사이에서 심심치않게 들어왔다. 

    그리고 실제로도 많이 사용된다. Observer 패턴, 싱글턴 패턴, 팩토리 패턴, Adpater 패턴 , 빌더 패턴 등

    실제 예로 내가 접하는 것들이다.
    한빛 미디어의 디자인 패턴 책으로 내가 알고 있는 디자인 패턴과 + 그 외의 디자인 패턴을 알고 싶어 본 책을 리뷰하였다. 

    쉽게 배워 바로 써먹는 디자인 패턴 

    #목차

    더보기



    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 정리

    한빛 미디어에서 가져온 목차이다. 

    금액은 31,500이다. 필자의 첫 디자인 패턴 책은 Head First 였고, 
    그 이후로 접하는 디자인 패턴 책이 본 리뷰 책이다.
    책을 읽어 본 바로는 디자인 패턴의 입문자에게 좀 더 적합하다고 생각되었다. 

    #Review 

    책을 읽으며 내가 평소에 생각했던 디자인 패턴이란 무엇일까 생각해 볼 수 있는 기회가 되었다.
    책에서 패턴이란 "많은 사람이 겪는 문제점과 해결법을 정리해둔 것"이라 하였다. 

    책에서는 패턴의 요소는 크게 4가지 요소를 지닌다고 설명한다. 
    위의 큰 틀을 토대로 각 챕터가 진행된다. 

    내가 본 챕터로 예를 들자면 '팩토리 패턴'에 대한 이름에 대하여 설명하고 
    그 이후로 어떠한 문제로 발생되었고 
    이것을 해결하기 위하여 팩토리 패턴이 만들어졌다.라는 흐름을 가지고 진행된다. 
    그리고 마지막으로 결과 부분으로 팩토리 패턴에 대한 정리를 해준다. 

    패턴의 요소 - 쉽게 배우는 디자인 패턴(한빛 미디어)

    그리고 또 한 가지 이 책에 대하여 알아 두면 좋을 점은, 책 속의 예시 코드가  php이다. 
    필자는 php에 대하여 잘 모르지만, 프로그래밍 언어가 말하고자 하는 것은 다 비슷하지 않나 라는 마인드로 읽긴 하였다.
    매번 java 혹은 c++, python으로 되어있는 예제 코드만 보다가 php로 되어있는 것을 보니 좀 생소했던것 같다. 
    책에 나오는 예시 코드의 언어가 무엇이든 상관 없다고 하면 중요하지 않겠지만
    그게 아니라면 한 번쯤 고려사항이 될 만한 요소가 되지 않을까 싶다. 

    아 그리고 또한 가지 안타까운? 점이라면 뭔가 너무 한글에 치우친 책이 아니었나 싶다. 
    Observer 패턴에 관하여 알고 싶어 목차에 대하여 찾아봤는데 관찰자 패턴으로 표기가 되어있었고,
    대부분의 패턴들을 한글로 끼워 맞춰 번역한 느낌이 있었다. 

    만약 기존에 패턴에 알고 있던 영어로 되 명칭이 있거나,
    혹은 다른 영어로 된 자료들을 찾고자 한다면 좀 에러 사항이나 고충을 겪지 않을까 싶었다. 

    그것을 제외한다면 큰 틀로 디자인 패턴들이 나오게 된 문제와 해결 그리고 결론까지 
    정해져 있는 큰 틀에 맞춰 책 내용이 진행되기 때문에 만족스럽게 읽었던 것 같다. 

     

    LIST

    댓글

Designed by Tistory.