책 리뷰

[책] GoF의 디자인 패턴

seungdols 2015. 11. 5. 21:01

IT 도서 리뷰


GoF의 디자인패턴

Gof의 디자인패턴

저자 : 에릭감마, 리처드 헬름, 랄프 존슨, 존 블리시디스

우선 이 책에 대해서는 할 말이 있는게 뭐냐고한다면, Chapter 별로 분리 되어진 내용 구성은 참 좋았다. 그러나 이 책을 구입하기 전에 알아둬야 할 것은 이 책의 예제는 C++ 언어로 작성 되어 있다는 점이다. 물론 나는 Java 언어를 Major 언어로 두는 Java 개발자이다. Ruby, Python을 취미 삼아 사용하는 사람이기도 하지만, C++의 경우는 상당히 난해하다.


일반 대학교에서 컴퓨터 공학을 전공하는 사람이라면 알겠지만, C ++의 언어는 우선 C 스타일로도 프로그래밍이 가능하고, 객체지향도 가능하다. 물론 중요한 것은 자신이 얼마나 객체지향스럽게 C++를 이용 할 줄 아느냐일 것 같다. 서론이 길었지만, 자신이 C++ 구문을 중급정도로 다룰 줄 알아야 쉽게 이해가 가능하다는 점이다.


Java를 쓰는 나조차도 C++의 고급 스킬을 이용한 예제를 다 이해하긴 힘들었다. 일단, 기본적인 문법을 거의 다 까먹었다는 점이 한 몫을 차지 했고, Low Level 코딩이 필요로하면, C언어로 작성하거나 하기때문에 C++는 대체로 C 보다 더 못쓰는 수준이었다.

일단 이 책은 기본 장은 디자인 패턴이 무엇인가 도대체 그것을 왜 써야 하는지에 대한 내용이 있다.
그러한 내용은 서론장인 Chapter 1에서 설명을 해준다. 사실 지금도 나는 잘 모르겠….다가 아니라.

어느 정도 수준 높은 스킬을 배우거나 좀 더 객체지향스럽게 프로그래밍 하고 싶었던 나에게 좋은 공부이자 도전이 되는 책이었다.

사실 디자인 패턴이란 ?

선대의 프로그래밍 고수들이 고민 고민 하며, 자주 사용하는 코드의 스타일을 말한다.

그리고 책 내용에도 그렇게 나와있다. 자신들도 자주 사용하는 것을 정리한 것 뿐이라고…

그리고 Chap 2를 지나 Chap 3부터가 진짜 디자인패턴의 시작이다.

  • Chap 3 생성패턴
    • 추상팩토리 (Abstract Factory)
    • 빌더 (Builder)
    • 팩토리 메서드 (Factory Method)
    • 원형 (Prototype)
    • 단일체 (Singleton)
  • Chap 4 구조패턴
    • 적응자 (Adapter)
    • 가교 (Bridge)
    • 복합체(Composite)
    • 장식자 (Decorator)
    • 퍼사드 (Facade)
    • 플라이급 (Flyweight)
    • 프록시 (Proxy)
  • Chap 5 행동 패턴
    • 책임연쇄 (Chain of Responsibility)
    • 명령 (Command)
    • 해석자 (Interpreter)
    • 반복자 (Iterator)
    • 중재자 (Mediator)
    • 메멘토 (Memento)
    • 감시자 (Observer)
    • 상태 (State)
    • 전략 (Stratege)
    • 템플릿 메서드 (Template Method)
    • 방문자 (Visitor)

이 세 Chapter에서 거의 대부분의 디자인 패턴을 논한다. 물론 이 책에 실리지 않은 많은 패턴이 더 존재한다고 생각한다. 그리고 이 책은 프로그래밍 하는 자리 옆에 두고 두고 찾아보며 봐야 할 책이라고 생각한다.


이 책은 사실 사비로 구입한 책이 아니고, 어찌저찌 하다보니 학교에서 사준 귀한 책이다.
(언제 내가 학교에서 책을 받아 보겠나…) 컴퓨터 공학을 전공하고, 자신이 OOP 를 지원하는 언어를 가지고 개발 할 것 같다 싶다면, 무조건 구입해서 보고 또 보고 내 것으로 녹여야 할 책임에는 분명하다.


GOF의 디자인 패턴에릭감마,리처드 헬름,랄프 존슨,존 블리시디스
상세보기



  •  무단 수정 및 배포는 금지합니다. 
  •  모든 내용은 본 블로그 운영자가 정리한 내용입니다. 
  •  참조한 정보에 대해서는 출처를 남기고 있습니다.
  •  틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요.
  •  choiseungho0822@gmail.com 보내주셔도 됩니다.
  •  Seungdols Wiki 운영중입니다.


반응형