이전

리뷰 (10)

한줄평
평점 분포
  • 리뷰 총점10 10%
  • 리뷰 총점8 70%
  • 리뷰 총점6 20%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 8.0
  • 40대 6.0
  • 50대 8.0
리뷰 총점 종이책
디자인 패턴에 대한 새로운 관점
"디자인 패턴에 대한 새로운 관점" 내용보기
처음 접했을때 '흔한' 디자인 패턴 관련 책인가 싶었다. 다양한 디자인 패턴을 소개하는 정도일 것이라고 생각 했다.  그러나, 곧 생각은 바뀌게 되었다. 디자인 패턴을 다른 관점으로 보는 방법을 소개하고, 그 관점으로 디자인 패턴을 소개 한다. 구글링을 해보니 이 새로운 관점은 오래전에 발생되었던것 같다. 해외 개발자 커뮤니티에서 관심을 가지지 않는 내 자신에 대해, 그리고
"디자인 패턴에 대한 새로운 관점" 내용보기

  처음 접했을때 '흔한' 디자인 패턴 관련 책인가 싶었다. 다양한 디자인 패턴을 소개하는 정도일 것이라고 생각 했다.


  그러나, 곧 생각은 바뀌게 되었다. 디자인 패턴을 다른 관점으로 보는 방법을 소개하고, 그 관점으로 디자인 패턴을 소개 한다. 구글링을 해보니 이 새로운 관점은 오래전에 발생되었던것 같다. 해외 개발자 커뮤니티에서 관심을 가지지 않는 내 자신에 대해, 그리고 이제서야 이 책이 번역되서 나오고 이제서야 읽게 되는 것인지 후회스럽다.


   초반에 Elemental Design Patterns (이하 EDP) 에 대한 소개로 부터 시작하는데, EDP는 단지 책 제목이 아니다. 디자인 패턴을 새롭게 바라보는 관점에 대한 이름이다.


  이 책 EDP는 원소 수준에서 디자인 패턴을 보는 방법을 알려 준다. 그리고 그 원소들이 결합된 아미노산 수준에서, 아미노산들이 결합하여 단백질의 수준에서 디자인패턴을 보는 방법도 알려 준다.


  디자인 패턴을 새로운 관점으로 볼 수 있게 되니 내가 작성한 코드에서 사용된 디자인 패턴들의 장단점들이 보이고 더 나은 패턴들을 적용할 수 있게 되었다.


  프로젝트 초기에 2주 이상 걸릴 것이라고 포기했던 디자인 패턴들을 새로운 관점으로 적용해 보았다. 2일 정도밖에 걸리지 않았다. 지레 겁을 먹었던 것이다. 중복 코드들의 증가의 위협으로 인해 더 이상 '날림' 디자인을 유지할 수 없었던 까닭이기도 하였다.


  이 책은 다른 디자인 패턴 책에 비해 읽기가 어렵다. 새로운 관점을 요구하기 때문이다. 그래서 몇개의 챕터는 3번 정도를 읽고 나서야 내 머리에 각인이 가능 하였다.


    책이 어려웠던만큼 이 책을 어떻게 소개해야 하는지도 역시 어렵게 느껴진다.


  (소개 순서는 챕터의 순서와 관계 없다)


  먼저, 디자인 패턴에 대한 기존 개발자간에 형성된 집단적 오해나 미신에 대한 근거를 제시하고, 이를 바꿀 것을 요구한다.


 두번째, 소스 코드나 UML을 통해 디자인 패턴을 발견, 분류, 분해 하는 방법을 알려준다.


  세번째, Pattern Instance Notation (PIN)을 소개하고, 디자인 패턴에 대한 모델화를 통해 분석하는 방법을 알려 준다.


  네번째, EDP를 통해 디자인 패턴을 리팩토링하고 코드에 적용하는 방법을 소개 한다.


  다섯번째, EDP 카탈로그에서 EDP의 방법으로 예시, 개선점, 패턴간의 비교, 장단점, 소스 코드, 다이어그램들을 통해 디자인 패턴, 중간 합성 패턴, GoF 합성 패턴들을 소개한다.


  일곱번째, EDP의 이론적 토대가 되는 Rho p-calculus를 소개와 함께 PIN + UML을 통해 소개된 디자인 패턴에 대한 공식을 소개한다.


  사람의 지능은 10살 정도이면 완성이 된다고 한다. 그러나 나이를 먹어감에 따라 역량에 차이가 커져가는 것은 그 사람의 경험이 영향을 주는 것이라고 한다. 책을 읽는 것도 하나의 경험이다. 좋은 경험을 가질 수 있는 기회를 준 한빛미디어에 감사 드린다.


  이 책을 코딩과 설계를 '더' 잘하고 싶은 모든 개발자들에게 권한다. 이미 다른 책을 통해 디자인 패턴 을 공부 하였더라도!  복습도 하며 새로운 관점을 가지게 된다.


b*******e 2013.06.24. 신고 공감 0 댓글 0
리뷰 총점 종이책
엘리멘틀 디자인 패턴
"엘리멘틀 디자인 패턴" 내용보기
엘리멘틀 디자인 패턴  - Elemental Design Patterns  - 객체지향과 디자인 패턴의 연결 고리 소프트웨어 개발쪽 일을 하는 사람들이라면, 디자인 패턴이라는 말을 들어본 적 있을 것입니다, 우리나라의 요즘 분위기 처럼 객체지향 방식이 개발의 기본처럼 되어 있는 상황이라면 디자인 패턴은 선택사항이 아니라 일종의 필수 요소처럼 생각할 수 도 있습니다. 자바와 같
"엘리멘틀 디자인 패턴" 내용보기

 

 


엘리멘틀 디자인 패턴

 - Elemental Design Patterns

 - 객체지향과 디자인 패턴의 연결 고리


소프트웨어 개발쪽 일을 하는 사람들이라면,

디자인 패턴이라는 말을 들어본 적 있을 것입니다,

우리나라의 요즘 분위기 처럼 객체지향 방식이 개발의 기본처럼 되어 있는 상황이라면

디자인 패턴은 선택사항이 아니라 일종의 필수 요소처럼 생각할 수 도 있습니다.

자바와 같은 프로그래밍 언어에 대한 기본적인 사항들을 공부하고 나면,

다음에 무엇을 할 것인가에 대한 궁금증이 생기는데요.

바로 다음이 리팩토링과 디자인 패턴에 대한 내용들이 아닐까 생각합니다.

물론 개인에 따라서 입장 차이가 있을 수 있고,

디자인 패턴이라고 하는 것이, 한 번 혹은 잠깐 봤다고 다 알 수 있는 것은 아니기 때문에

공부하는 시기에 대한 이견은 있을 수 있지만,

개발자가 알아둬야할 사항이라는 점에 대해서는 큰 이견이 없을 것이라고 생각합니다.

이 책도 디자인 패턴에 대해 소개하는 내용을 담고 있습니다.

다만, 기존에 나왔던 디자인 패턴에 대한 책과는 다른 방식을 지니고 있습니다.

원서를 제외하고 그간 우리나라에 번역되었던 몇 권의 책을 보면,

디자인 패턴에 대한 카탈로그 식의 책들이 여럿 있었습니다.

어떤 디자인 패턴이 있고, 구현한 예제 코드들을 보여주는 식의 내용들이 많았습니다.

처음 이 책도 그와 비슷한 내용일거라 생각하고 읽기 시작했지만,

이 책은 기존의 책과는 다른 방식을 제시합니다.

이 책의 제목을 약어로 표현한 것 같은 EDP라는 방식으로 디자인 패턴에 접근하는

방식을 소개하는 것이 이 책의 내용입니다.

어떤 패턴을 나열하고, 그 패턴을 소개하는 것이 아니라,

패턴을 구성하는 요소들을 제시하고, 그 요소에 따라, 특정 패턴을 접근하는 방식입니다.

마치, 화학에서 원소 주기율표를 보는 듯한 느낌을 받았습니다.

수소는 원자와 전자의 차이를 통해 원소들의 차이를 보여주듯이,

객체, 필드, 메소드, 타입이라는 것으로 각 패턴들을 설명합니다.

기존에 봤던 디자인 패턴에 대한 책과는 다른 방식이어서 새롭기도 했지만,

역시나 쉽지 않다는 생각이 들었습니다.


디자인 패턴에 대해 전혀 모르는 분들 보다는, 최소한의 경험이라도 있으신 분들이 보는게

더 좋지 않을까 생각합니다.

디자인 패턴은 소프트웨어 개발을 하면서, 지속적으로 연구하고, 사용해야할 문제라고

생각합니다. 패턴에 대한 기존과는 다른 새로운 시각과 접근 방식을 궁금해 하는 분들에게

좋은 경험이 되리라 생각합니다.

 

 

 

YES마니아 : 골드 m*********u 2013.08.03. 신고 공감 0 댓글 0
리뷰 총점 종이책
엘리멘틀 디자인 패턴(Elemental Design Patterns)
"엘리멘틀 디자인 패턴(Elemental Design Patterns)" 내용보기
평소 얘기만 듣던 '디자인 패턴'에 관한 책이다. 그동안 개발자로 살아오면서 디자인 패턴 이란걸 이제야 접한다니. 좀 웃기는 얘기 같기도 하다 ^^ 하나의 기술을 습득하고, 일 하나 끝내고 나면 수 없이 많은 신기술과 정보들이 쏟아져 나오는 세상이니 못볼수도 있지 ㅋ 하지만 개발자의 길을 계속 가고 싶다면 언젠가 기회가 주어진다면 꼭 한번 보고 싶던 내용이다. 도대체
"엘리멘틀 디자인 패턴(Elemental Design Patterns)" 내용보기

평소 얘기만 듣던 '디자인 패턴'에 관한 책이다.

그동안 개발자로 살아오면서 디자인 패턴 이란걸 이제야 접한다니.

좀 웃기는 얘기 같기도 하다 ^^

하나의 기술을 습득하고, 일 하나 끝내고 나면 수 없이 많은 신기술과

정보들이 쏟아져 나오는 세상이니 못볼수도 있지 ㅋ

하지만 개발자의 길을 계속 가고 싶다면 언젠가 기회가 주어진다면

꼭 한번 보고 싶던 내용이다.

도대체 대자인 패턴이 무엇인지 디자인 패턴을 어떻게 개발에 접목 시켜야 할지

촉박한 시간에 개발 업무를 완수해야 하는 요즘 같은 시기에 과연 패턴과, 문서화

가 시간 투자에 비해 어떤 이득이 있을지. 많은 의문이 든다.

쓸데 없는 말이 너무 길었습니다. 본론으로 들어가서 제가 처음으로 읽은 이 책에

대해서 개인적 견해를 서평이라 말 할수 있을진 모르지만 몇자 적어 봅니다.

우선 이런 좋은 책을 읽을 기회를 주신 한빛미디어에 감사드립니다.

이 책을 처음 읽기 시작 했을 때, 눈에 띄는게 저자의 표현 방법이었다.

마치 저자의 생각과 지식을 나에게 전달하기 위해서 개인 교습을 받는 느낌 이었다.

여름에 읽어서 그런가 덥고 졸립고 익숙치 않은 내용이라서 그런지 가끔 읽다 졸음이

쏟아지기도 했다. ^^

생소한 내용이라 왠간한 IT 관련 책은 이삼일 만에 1독은 하는데 이 책은 꽤 오래 읽었다

처음 접하는 내용인데 쉽게 이해 할려고 해서 그런가....

책의 3분의 1 정도 읽었을 때 아 드디어 글과 그림이 아닌 내가 자주 해왔던 프로그램이

나오넹 ㅋ. 익숙한 내용들 이다.

음 역시 개발자는 말로 하는 설명보단 눈으로 보는 프로그램이 더 익숙 한거 같다.

1독을 끝낸 지금 내가 디자인 패턴 에 대해 완벽히 이해를 하지는 못했지만.

그동안 왜 이런 책을 안읽었나 싶을 정도로 뭔가 심오하고, 개발자에게 득이 많은

책 임을 느꼈다.

개인적으로 이 책은 디자인 패턴 에 전혀 본 적이 없는 개발 초보자 들이 볼 때는

앞에 나오는 수많은 글과 그림은 이해 할려고 심각하게 생각 안하길 바란다.

중반쯤 읽어 가다 보면 익숙한 뭔가를 보게 될 것이고, 그때 부터 어느정도 이해가

될 것이기 때문이다.

이 책을 여러번 읽고 완벽히 이해 한다면 당신은 어느세 일반 개발자와 차원이 다른

전문가가 될 준비가 끝났을 것이다.

그만큼 개발자라면 이 책을 꼭 한번쯤은 읽어야 할 필독서로 추천하고 싶다.

나 또한 좀 더 이해하고 활용 하기 위해  이 책을 2독째 하고 있는 중이다 ^^

짧은 내용 이었지만 이 책을 알게 되고 읽게 된 것을 영광 으로 생각하며

책을 읽으면서 느낀 점을 적어보았습니다.

이 책으로 수 많은 IT업계 종사자 분들의 수준이 한층 업그레이드 되길 바랍니다.

b****j 2013.07.14. 신고 공감 0 댓글 0
리뷰 총점 종이책
엘리멘틀 디자인 패턴
"엘리멘틀 디자인 패턴" 내용보기
이책은 지금까지 나왔던 GOF의 디자인 패턴을 소개하고 설명하는 책을 넘어서 EDP라는 개념을 소개하는 새로운 책인 것 같습니다. 디자인패턴 관련 분야에서 신선한 자극을줄것같네요   요즘 SW 관련 기업 취업에서 스펙의 비중은 줄이고실무에서 얼마나 활용 가능한 코딩 실력을 가지고 있느냐를 검증하기 위한 자체 시험을 실시하는 기업이 늘고 있습니다.알고리즘을 적절하게 문제에
"엘리멘틀 디자인 패턴" 내용보기

이책은 지금까지 나왔던 GOF의 디자인 패턴을 소개하고 설명하는 책을 넘어서 EDP라는 개념을 소개하는 새로운 책인 것 같습니다. 디자인패턴 관련 분야에서 신선한 자극을줄것같네요

 

요즘 SW 관련 기업 취업에서 스펙의 비중은 줄이고
실무에서 얼마나 활용 가능한 코딩 실력을 가지고 있느냐를 검증하기 위한 자체 시험을 실시하는 기업이 늘고 있습니다.
알고리즘을 적절하게 문제에 적용하여 코딩하는 능력,
객체 지향 및 디자인 패턴 등을 적용하여
품질 좋은 코드를 설계할 수 있는 능력 등을 검증하는 것이죠.

그런데 시중에는 수학의 정석 같은 이론 책은 많지만 실전 모의고사 같은 문제집은 별로 없는 것 같습니다.
그런 책들로는 대략 이러한 알고리즘(또는 디자인 패턴)들이 있구나 정도를 이해하는 수준에서 그치고,
실무에서 자연스럽게 활용할 수 있을 정도로 체화시키는 정도까지는 못미치는 것 같습니다.
그래서 저는 실무적으로 발생 가능한 다양한 문제와 해결과정을 담고 있는 워크북용 책이 많이 나왔으면 합니다.

g*****l 2013.07.01. 신고 공감 0 댓글 0
리뷰 총점 종이책
Elemental Design Patterns - 한빛미디어
"Elemental Design Patterns - 한빛미디어" 내용보기
프로그래밍을 짬짬히 하면서 디자인 패턴이란 말을 가끔씩 듣게 되었습니다. 이게 대체 뭔가 싶기도 하고.. 어찌되었건 '프로그램은 에러없이 잘 굴러가기만 하면 되는게 아닌가' 라는 생각도 하고 있었구요.그러다가 만나게 된 책, 'Elemental Design Patterns - 객체지향과 디자인 패턴의 연결 고리' 입니다.일단 이 책은 '디자인 패턴이 뭐에요? 먹는거에요?' 인 독자에겐 추천해드리
"Elemental Design Patterns - 한빛미디어" 내용보기


프로그래밍을 짬짬히 하면서 디자인 패턴이란 말을 가끔씩 듣게 되었습니다. 이게 대체 뭔가 싶기도 하고.. 어찌되었건 '프로그램은 에러없이 잘 굴러가기만 하면 되는게 아닌가' 라는 생각도 하고 있었구요.


그러다가 만나게 된 책, 'Elemental Design Patterns - 객체지향과 디자인 패턴의 연결 고리' 입니다.



일단 이 책은 '디자인 패턴이 뭐에요? 먹는거에요?' 인 독자에겐 추천해드리고 싶지 않습니다. 궂이 이 책을 보고야 말겠다 싶으면, Head First Design Patterns 보신 뒤에 이 책을 보셔야하구요.

서문에 따르면 디자인 패턴의 존재를 알고있으며 디자인 패턴의 정의를 간단히 말로 설명할 수 있는 수준이면 이 책을 읽기에 부족함이 없다고 합니다. 한마디로 디자인 패턴이 뭔지는 알겠는데 어떻게 써먹는지를 모르는 딱 초보자를 벗어나고 싶어하는 분께 적극 추천드립니다.

그런고로 이 책은 쌩초보자에겐 더 많은 공부의 기회를 줍니다. 


책에 삽입된 삽화 대부분이 UML입니다. (왼쪽 그림)

두리뭉실하게 그려진 일반 삽화들과 다르게 한 눈에 딱 들어와서 편하더군요. 특히 객체언어가 난무하는 이 책에서 UML 없이는 설명하기가 정말 힘들겠죠. 오히려 다른 도서에서도 코드 다음에 나오는 코드 설명 잡화가 UML로 깔끔하게 나오면 얼마나 좋을까라는 생각도 들었습니다.


또한, Chapter 5부터 EDP 카달로그라고 하여(오른쪽 그림) 디자인 패턴 기초 4개 / 메서드 호출 패턴 12개를 사전형식으로 나열해두었습니다. 책의 옆 부분에도 표식이 되어있어서 필요할 때 언제든 찾아보는게 매우 간편했습니다.

특히 구현 방법에 등장하는 언어가 C++/JAVA에만 한정된 것이 아니라 파이썬이나 오브젝티브-C도 나와있어서 신선했습니다. 단지 등장하는 모든 언어가 첫 패턴부터 마지막 패턴까지 구현 방법이 다 쓰여있으면 좋겠지만.. 그러려면 책이 더 두꺼워야 하므로 직접 찾아보거나 머리를 굴려보는 등의 묘안을 짜내야할 듯 합니다.


총평을 간단하게 말씀드리자면.... 모르고 보면 그냥 뭔가 싶은 책이지만, 알고보면 매력넘치는 책입니다.

가끔 보이는 오탈자도 그냥 그러려니하고 넘어가는 제 상태를 볼 때 아무래도 위에 언급해드린 헤드퍼스트 책을 본 뒤에 이 책을 다시 읽어야할듯 합니다. 모르면 평범하지만, 알면 많이 편해지는 것. 그게 바로 디자인 패턴인 것 같습니다~

f*****s 2013.06.23. 신고 공감 0 댓글 0
리뷰 총점 종이책
엘리멘틀 디자인 패턴 (한빛미디어)
"엘리멘틀 디자인 패턴 (한빛미디어)" 내용보기
엘리멘틀 디자인 패턴 (Elemental Design Pattern) 소프트웨어 개발자로 경력이 어느정도 쌓이다보면 자연스럽게 디자인 패턴에 관심을 갖게 된다. 자바 개발시 싱글턴 디자인 패턴을 모르고서는 사실상 표준이라 할 수 있는 스프링 프레임워크를 사용할 수 없고 경력자로써 이직을 위해 면접을 준비할 때에도 디자인 패턴 중 몇 가지는 다시 한 번 정리하게 된다. 그래서 경험있는 개발
"엘리멘틀 디자인 패턴 (한빛미디어)" 내용보기

엘리멘틀 디자인 패턴 (Elemental Design Pattern)

 

소프트웨어 개발자로 경력이 어느정도 쌓이다보면 자연스럽게 디자인 패턴에 관심을 갖게 된다. 자바 개발시 싱글턴 디자인 패턴을 모르고서는 사실상 표준이라 할 수 있는 스프링 프레임워크를 사용할 수 없고 경력자로써 이직을 위해 면접을 준비할 때에도 디자인 패턴 중 몇 가지는 다시 한 번 정리하게 된다. 그래서 경험있는 개발자라면 GoF의 디자인패턴을 보거나 아니면 적어도 헤드퍼스트 디자인패턴 책은 가지고 있다.

 

나는 이 책의 제목으로부터 디자인 패턴의 기본적 원리를 파악하고, 좀 더 쉽게 설명해주는 책일거라 생각했다. 하지만 엘리멘틀 디자인 패턴(Elemental Design Pattern, EDP)은 디자인 패턴을 구성하는 더 작은 (원자) 패턴 같은 것이다. 

 

저자가 속했던 프로젝트에 세 가지 라이브러리를 만드는 각 세 개의 팀이 있었고 저자는 그 중에 하나에 속해 있었다. 어느날 고객이 이번에 추가된 기능이 너무 도움이 되었다고 감사를 표시했는데 정작 프로젝트원들은 그 말이 무슨 말인지 못랐고, 200시간을 투자한 후에야 고객이 한 작업은 각 라이브러리의 일부를 이용하여 (우연히도) 데코레이션 패턴을 만든 것이라는 것을 알아냈다. 이 경험 이후, 저자는 소스로부터 디자인 패턴을 추출하는 SPQR 시스템을 만들게 되는데, 디자인 패턴을 찾아내기 위해 디자인 패턴을 구성하는 기본 뿌리와 같은 패턴을 정의하고 그것을 EDP라고 이름지었다. 그러니까 데코레이션 패턴이나 앱스트랙트 팩토리 패턴 같은 것들이 물(H2O)이나 산소(O2) 라면 EDP는 H나 O를 말한다. 마치 주기율표의 화학 기호같이.

 

저자는 또한 EDP를 표기하기 위해 PIN(Pattern Instance Notation)을 고안해냈다. 디자인 패턴을 표시하는 데 많이 사용되는 UML은 일반적인 모델링을 위한 것으로, UML을 사용하여 디자인 패턴을 설명할 때 공개되는 정보를 최소화하여 고수준의 추상을 나타내는 데에는 한계가 있고 그래서 PIN을 만들었다고 한다. PIN은 소프트웨어의 설계 구성 요소를 시각적으로 간결하고 유연하게 표현하며, 단독으로도 또는 UML과 같이 쓰일 수도 있다.

 

도서의 2, 3장에서 위와 같이 EDP와 PIN에 대한 소개를 하고 4장에서는 EDP와 PIN을 가지고 데코레이션 패턴에 적용하면서 더 심화된 내용을 다룬다. 실제 4장 까지가 EDP에 관한 주요 이론적인 설명이며 5장 이후는 여러개의 EDP들을 리스트업하고 각각에 대한 상세와 GoF의 몇 가지 패턴을 소개된 EDP를 사용하여 설명하고 분석하는 예제가 있다. 

 

책을 읽다보니 실용서라기보다는 학술적 이론서에 가깝다는 생각이 들었다. 실제 부록에는 EDP 이론에 기반이 되는 공식을 수학적으로 설명하는 것이 있는데 특히 이 부분은 일반 개발자는 소화하기 힘들 것 같다. 그리고 원문이 그런지 아니면 번역 때문인지 초반에 읽기가 술술 넘어가지 않는다. 또 내용도 깊이가 있는데다가 새로운 이론을 다루는 터라 결코 만만하게 볼 수 있는 책이 아니다. 4장을 읽을 때는 나 자신의 지식의 부족을 느끼기도 했다. 한동안 가벼운 주제와 깊지 않은 기술도서만 가까이한 본인에게도 원인이 있는 것 같다.

 

어쨌든, 디자인 패턴을 설명하는 기본 패턴에 대한 발견이라는 주제는 대단히 흥미 있어보인다. 이 책에 나열한 EDP 리스트는 전체의 일부라 했으니 계속적인 결과가 나올 것으로 기대된다. 언제 EDP와 PIN이 대중화 되어 널리 쓰이게 될지는 모르지만, EDP를 만들어낸 저자에게 경의로움을 느낀다.



c*****h 2013.06.23. 신고 공감 0 댓글 0
리뷰 총점 종이책
[한빛미디어] Elemental Design Patterns 객체지향과 디자인 패턴의 연결 고리
"[한빛미디어] Elemental Design Patterns 객체지향과 디자인 패턴의 연결 고리" 내용보기
이 책은 그냥 편하게 읽기엔 쉽지가 않다. 즉, 단어 사용이 바로 이해하기가 좀 어려운 느낌이 든다. HeadFirst 의 OOA&D 나, HeadFirst Design Patters 처름 그냥 술술 읽히지 않는다. 그리고 이 책은 초보자를 겨냥한 책도 더더욱 아니다. 기본적으로 Design Pattern 뭔지, GOF 가 표현한 23가지  Design Patterns에 대한 기본 개념 및 객체지향 개념들을 알고 있다는 전제하에 읽어
"[한빛미디어] Elemental Design Patterns 객체지향과 디자인 패턴의 연결 고리" 내용보기

이 책은 그냥 편하게 읽기엔 쉽지가 않다. 즉, 단어 사용이 바로 이해하기가 좀 어려운 느낌이 든다.

HeadFirst 의 OOA&D 나, HeadFirst Design Patters 처름 그냥 술술 읽히지 않는다. 그리고 이 책은 초보자를 겨냥한 책도 더더욱 아니다. 기본적으로 Design Pattern 뭔지, GOF 가 표현한 23가지  Design Patterns에 대한 기본 개념 및 객체지향 개념들을 알고 있다는 전제하에 읽어야 한다. 최소한 HeadFirst Design Patterns을 머리속에 잘 가지고 있어야 이 책을 읽기가 편하다.

 

이 책을 읽고 짧게 서술하라구 한다면, 당연,, EDP 개념 및 PIN 사용법이라고 말하고 싶다.

 

1. EDP(Elemental Design Patterns).

   Chaper 2 에서 아래와 같이 서술되어 있다.

   " 본질적으로 객체지향 프로그래밍의 기본 개념을 모아 놓은 것이다". 이 책에서는 되부름(Recursio

   n), 위임(Delegation), 병합(Conglomeration), 리디렉션(Redirection) 의 4 종 세트를 기준으로 설

   명한다. 이를 기반으로 타입을 추가함으로써 하나의 3차원 틀을 만드며, 메서드 유사도를 중심으로

   DESIGN PATTERN을 해부한다.

   즉, 하나의 Design pattern에 들어 있는 각각의 객체생성(Create Object), 가져오기(Retrieve), 상속

   (inhertance), 위임(Delegation) 등(16가지) 으로 다시 쪼갠 후, 이 쪼개진 부분들이 서로 어떻게 연

   결되느냐에 따라 Design pattern이 완성된다는 것을 설명한다. 2장, 4장 5장이 이책의 핵심이지 싶

   다.

 

2. PIN(Pattern Instance Notation)

   " PIN은 패턴을 구성하는 개념과 발상을 시각적으로 표한한 것이다." 라고 서술되어 있다.

   일반적으로 사용하고 있는 UML대신 지은이는 PIN을 가지고 Design Pattern를 시각적으로 표현하고

   있다. PIN의 가장 큰 장점은 UML로 표현하기 어려운 부분들은 PIN으로 아주 간단 명료하게 표현한

   다는 것이다. 물론 UML과 PIN과 결합하여 사용하는것도 가능하다.

 

3. 읽으면서 느낌점.

    위에서도 언급했듯이, 이 책은 HeadFirst OOAD 또는 Design Patterns 를 선행학습으로 이루어 져

    야한다. 책 제목은 매우 기초적인 설명을 다룰거 같지만, 책을 보면, 지은이는 GOF Design Pattern

    들을 편하게 사용한다. 즉, 각 패턴이 무언인지에 대해선 자세히 설명하지 않는다. 고로, 먼저 Patte

    rn들에 대한 기본 개념들을 모두 인지 하고 있어야 한다. 객체지향 4대 개념 (상속, 캡슐화, 다형성,

    추상화)가 코드에서 보여야 하며,  Design Pattern들의 개념을 알고있다면, 연결 고리로서의 지은이

    의도를 쉽게 파악 할 수 있으리라 본다. 더 간단히 이야기하면, 막 객체지향에 입문한 사람이라면

    도움이 안된다는 이야기다. 위의 언급한 내용들을 명쾌하진 않더라도 어느정도 인지하고 있으면

    정리 차원에서 이 책은 도움이 많이 되리라 판단한다.

    java Engineer 입문자라면,먼저 HeadFirst OOAD, DesignPatterns 를 읽기보기를 권하며,

    C/C++ 입문자라면, "GOF 디자인 패턴 이렇게 활용한다" 라는 책을 읽어보기를 권한다.

   각 언어마다, 객체 지향 개념을 표현하는 방법이 약간씩 다르므로, 자기 언어에 맞게 구현해보는것이

   도움이 되기 때문이다.

s****7 2013.08.05. 신고 공감 0 댓글 0
리뷰 총점 종이책
디자인패턴 근원의 연구
"디자인패턴 근원의 연구" 내용보기
이도서는 디자인 패턴이란 단어앞에 Elemental 이란 단어가 붙어 있어서 디자인 패턴의 근본을 설명하고 그 원리를 좀더 논하는 책일 것이라 생각했다.   결론을 내리자면, 책 표지의 " 디자인 패턴은 기술인가, 과학인가?" 이 주제를 다루는 다루는 도서같다.   외국 번역서라는 특징과 외국인의 정서가 녹아있는 프로그래머가 아닌 사람한테는 어렵게 느껴지는 도서였다.과연 프로그
"디자인패턴 근원의 연구" 내용보기

이도서는 디자인 패턴이란 단어앞에 Elemental 이란 단어가 붙어 있어서 디자인 패턴의 근본을 설명하고 그 원리를 좀더 논하는 책일 것이라 생각했다.

 

결론을 내리자면, 책 표지의 " 디자인 패턴은 기술인가, 과학인가?" 이 주제를 다루는 다루는 도서같다.  
외국 번역서라는 특징과 외국인의 정서가 녹아있는 프로그래머가 아닌 사람한테는 어렵게 느껴지는 도서였다.
과연 프로그래머라도 이해가 용이할까 라는 생각이 들었다. 도리어 자연 과학서를 읽고있는 느낌....
패턴을 원소주기율표처럼 요소로 분해하고 조합하며, 디자인패턴 인스턴스 표현법, EDP 활용법을 논하고 있다.
즉, 신종 EDP를 소개하는 개론서이자 연구주제를 알려주는 책이기도 했다.
개인적으로는 내용이 어려웠다. 일단 해석서라는 특징으로 용어의 제목과 설명이 와닿지 않았다.

어디서 부터 어떻게 책의 느낌을 논할지는 모르겠지만,


책이 전달하고자 하는 내용을 정리하면,
 - 모든 패턴이 원소 패턴으로 구성되어 있다고 한다. 예를 들어, '팩토리 메서드'패턴은 네 EDPS 로 분해 될 수있다.'Create Object '를''Fulfill Method', '와''Fulfill Method', 'Retrieve'. 그리고 UML은 네 개의 하위 패턴과 큰 패턴의 시각화에 도움이 된다는 점이다.

 - 다양한 방법으로 주어진 특정 패턴을 설명하고 있고, C, C++, Java, Objective-C 등의 다양한 언어로 패턴 구현법도 명시했다.

 - 그리고 PIN을 통해 각 디자인 패턴을 더 간략히 표현할수 있다고 설명하고 있다.

 - 디자인 패턴 (EDPS)은 객체 지향 프로그래밍의 기본 개념의 카탈로그로서, Create Object, Retrieve, nheritance, Abstract Interface, Redirection, Conglomeration, Recursion, Revert Method, Extend Method,Delegated Conglomeration, Redirected Recursion, Trusted Delegation, Trusted Redirection, Deputized Delegation, Deputized Redirection, Fulfill Method, Retrieve New, Retrieve Shared, Objectifier, Object Recursion 등을 설명한다. 각 카탈로그들을 PIN으로 표현하고, GOF 패턴에 매핑하여 설명하고 있다.

 

전문 지식이 없어서, 각각에 대한 설명을 쉽게 이해되지는 않았다.(해석서의 제한이기도 한것 같다.)
이도서를 연구서라고 느낀것은 EDP의 4개 요소(Conglomeration, Recursion, Delegation, Redirection)을 '객체유사도', '타입유사도', '메서도 유사도'의 3차원 공간에 다름과 유사함으로 구분하여 설명한것이 흥미로웠다.
책의 후반부에 GOF의 패턴들을 이 원리로서, PIN으로 표현하여 설명한 부분에서 이해가 조금씩 가기 시작했다.

전체적으로 해석판의 용어 정리와 디자인패턴 원리 설명이 전반부에 쉽게 풀어졌다며, 후반부에 좀더 재미있게 느껴졌을 것이고,좀더 분석적인 리뷰를 적을수 있을것 같은데, 아쉬운 생각이 든다.
그리고 개인적으로 디자인패턴책을 다시 펴보게 되었다. 다음 개정판이 나오게 된다면, 다시한번 접해보고 싶은 생각도 든다.

 
j******s 2013.06.20. 신고 공감 0 댓글 0
리뷰 총점 종이책
엘리멘틀 디자인 패턴
"엘리멘틀 디자인 패턴" 내용보기
디자인 패턴이 이슈가 된지는 참 오래된거 같다. 비슷한 구조이면서 그 상황에 따라 만들어지는 여러 패턴들이 생기면서 처음 GOF 패턴이 나온 이후 지금은 수백개가 넘는 디자인패턴이 나와있다. 항상 이런 저런 디자인패턴 책을 보면서 그 안에 비슷한 패턴에서 풀어져 나가는걸 보면서 이 구조만 알면 되지 멀.. 하던 때도 있었다. 디자인패턴의 이름과 구조를 외우고 무조건식으로 해
"엘리멘틀 디자인 패턴" 내용보기

디자인 패턴이 이슈가 된지는 참 오래된거 같다. 


비슷한 구조이면서 그 상황에 따라 만들어지는 여러 패턴들이 생기면서 

처음 GOF 패턴이 나온 이후 지금은 수백개가 넘는 디자인패턴이 나와있다. 


항상 이런 저런 디자인패턴 책을 보면서 그 안에 비슷한 패턴에서 풀어져 나가는걸 

보면서 이 구조만 알면 되지 멀.. 

하던 때도 있었다. 


디자인패턴의 이름과 구조를 외우고 무조건식으로 해당 패턴을 상황에 적용시키는 경우를 종종 보면서

디자인 패턴책을 공부하는 사람들에게 무조건식으로 외우는건 위험하다고 얘기를 했던적도 있다.

물론 난 디자인패턴의 이름들을 아직도 잘 기억못한다. 

머리가 나빠서 -_-;


이 책은 상황에 따라 변경되어 만들어져 가는 디자인패턴에 앞서

그 패턴을 구성하는 기본 구성 원소를 객체,필드,메소드,타입 의 4가지로 나누어

그 4가지로 기본 패턴을 정의하여 


상황에 따라 그 기본패턴의 조합으로 패턴을 만든다는 내용인거 같다. 


이 책을 읽으면서

디자인 패턴에 앞서 그러한 기본 패턴을 정립하여 그 기본패턴으로 풀어나간다는 

생각이 참 흥미롭고 재미있었다.

왜 이런 생각을 못했을까 하는 생각도 들었던듯 하다. 


다만 아쉬운 점은 

책에서 설명하는 EDP 에 대해서 뒤에서 다루지만

앞단에서 해당하는 EDP 로 설명을 해야 하기에 

뒤에서 다룰 내용을 앞에서 어느정도 설명해야 하는 구성에서 

그러한 내용이 쉽게 이해되도록 구성되진 않은거 같다. 


해당하는 EDP 에 대해서 프로젝트에서 처음 그 생각을 구성하게 되었다는 내용을 하면서

해당하는 프로젝트로 만들어진 SPQR 시스템에 대해서 계속 언급하는 것도 

좀 읽는데 방해가 된 듯 하다. 


기본 패턴을 정립한다는건 좋은 내용 같은데 

그 기본패턴을 정리하는 과정에서 오히려 그 기본패턴도 더 

많아지는게 아닌가 하는 생각도 들었다. 


여러 아쉬운 점이 있었지만

기본패턴을 정립하여 풀어나간다는 내용이 참 흥미로웠다.

j***o 2013.07.06. 신고 공감 0 댓글 0
리뷰 총점 종이책
객체지향과 디자인 패턴의 연결고리
"객체지향과 디자인 패턴의 연결고리" 내용보기
책 제목에서 드러나듯이 이 책은 디자인 패턴에 관한 책이다. 디자인 패턴이란 크리스토퍼 알렉산더와 그 동료들이 처음 빌딩, 도시 설계시 사용하는 것으로 시작되어 소프트웨어에 큰 영향을 미친 문제 해결 방법이다. 디자인 패턴 이야기를 하면 빠지지 않고 언급되고 이 책에서도 자주 언급되는 GoF의 디자인 패턴 책에서 "잘 설계된 모든 객체지향 구조들은 패턴들로 가득하다" 라는
"객체지향과 디자인 패턴의 연결고리" 내용보기

책 제목에서 드러나듯이 이 책은 디자인 패턴에 관한 책이다.

 디자인 패턴이란 크리스토퍼 알렉산더와 그 동료들이 처음 빌딩, 도시 설계시 사용하는 것으로 시작되어 소프트웨어에 큰 영향을 미친 문제 해결 방법이다.

 디자인 패턴 이야기를 하면 빠지지 않고 언급되고 이 책에서도 자주 언급되는 GoF의 디자인 패턴 책에서 "잘 설계된 모든 객체지향 구조들은 패턴들로 가득하다" 라는 말을 할 정도로 객체지향과 디자인 패턴은 엄청난 연결 고리가 있기에 부제 '객체지향과 디자인 패턴의 연결고리'는 잘 지었다는 생각이 들었다.

 

 처음에 책 제목 '엘리멘틀 디자인 패턴(Elemental Design Patterns)'을 보고 디자인 패턴에 대한 기초를 탄탄히 학습시켜주는 책으로 생각이 들었으나 저자가 진행하였던 SPQR '패턴 질의/인식 시스템' 프로젝트 진행중에 디자인 패턴을 소프트웨어적으로 인식시키는 과정이 필요 하였고, 앞의 사람이 보는 GoF의 디자인 패턴과 달리 소프트웨어에 의해 인식되고 학습이 되어지는 과정에서 만들어진 디자인 패턴의 기초와 기본부터 확장하며 만들어진 패턴들이었다. 

 큰 문제를 해결 하는 방법 중에 문제를 나눌수 있는 가장 작은 부분까지 쪼개어 해결해 나가는 방법이 있는데 이 책에서 언급하는 패턴들이 엘리맨틀(Elemental) 이라는 이름을 붙힌 이유는 원소주기율표처럼 아주 기초가 되는 원소들을 기반으로 확장해 나간 것임을 강조하기 위함이 아닌가 한다.

 

 이 책에서 얻은 중요한 포인트는 디자인 패턴에 집단적 미신, 디자인 패턴과 언어와의 상관성, 디자인패턴의 표기법으로 생각된다.

 

 디자인 패턴에 대한 집단적 미신을 언급하는 부분은 아무 생각없이 기존의 디자인 패턴을 가져다 쓰고, 임의로 수정해 사용하고 있는 상황이라면 돌아 볼 수 있게 해준다.

 디자인 패턴의 정의는  객체지향 소프트웨어를 설계할 때 겪는 특별한 문제에 대한 간결하고 명확한 솔루션이고, 숙련된 설계자들의 경험을 다른 개발자를 도와줄 수 있는 해법으로 만들어 진 것인데 그 패턴이 만들어진 배경과 경험에 대해서 생각하기 보다는 기계적으로 패턴을 사용하는 경우가 적지 않다. 디자인 패턴은 그 패턴 자체 보다 집단 지성에 의해 만들어진 배경과 경험이 더 중요하다는 것을 강조하고 있다. 

 

 또한 디자인 패턴은 언어와 상관이 없다는 것을 강조하며 심지어 객체지향 언어가 아닐지라도 상관없다고 이야기를 하기 위해 많은 프로그래밍 언어의 예를 들어준다.

 CLOS(Common Lisp Object System) 라는 생소한 언어 부터 Objective-C 까지 조금 언급을 하지만 가장 중요한 패턴들의 예제들이 C++ 로 만들어진 부분이 상당히 아쉬운 부분 중 하나이다. 국내에서 많이 사용되는 JAVA로 예제가 작성되었더라면, 예제의 결과물을 이해와 실행에도 도움이 되지 않았을까 하는 아쉬움이 남는다.

 하지만 아쉬움이 크다는 것은 책에서 이야기한 집단적 미신, 언어가 중요하지 않다는 부분에 대한 생각을 아직 버리지 못하고 있는 것이라고 할 수 있겠다.

 

 디자인 패턴은 보통 UML Diagram 으로 표현 되는데, 1개의 패턴이 사용되는 경우라면 문제가 없지만 전체 프로젝트를 보는 경우는 상당히 복잡해지는 문제를 언급한다.

 아래의 알아 보기 힘든 것이 바로 실제 프로젝트의 UML Diagram 으로 그리 복잡하지 않은데도 아래와 같이 복잡하게 표시되며 이를 알아보기 위해 출력하기 위해서는 3,290장의 미국 엽서크기의 종이가 필요하다고 한다. 

 그에 따른 해결책으로 PIN(Pattern Instance Notation)을 제시하며, 새로운 디자인 패턴에 새로운 표기법까지 적시하고 있다.

 

 위에 언급한 부분과 디자인 패턴 목록에서 각 패턴이 기술되게 되는 해당 과정은 흥미로웠지만 읽기 쉽지 않은 책이었다.

 디자인 패턴을 모르는 분들이 보기에는 제법 난이도가 높은 책이라는 생각이 들었다.

 추가적으로 번역에 대해서는 자주 나오는 어서션이라는 단어 옆에 Assertion의 원어를 표기해주면 조금 더 인지하기 쉬웠을거라는 생각과 raw data 과 random data 의 번역을 날 데이터, 랜덤 데이터로 했는데 이를 통일또는 자주 쓰는 단어를 사용 해서 로우 데이터, 랜덤 데이터 혹은 원시 데이터, 임의 데이터 로 했으면 하는 어땠을까 하는 생각이 든다.


 이렇게 힘들게 또 다른 디자인 패턴을 배워야 할 이유가 있을까? 하는 생각이 들지만, 이러한 노력은 언제나 유연성과 재사용성의 증가로 보답된다는 문구를 떠올리며 천천히 해당 패턴들을 정의한 배경에 대한 전문가들의 지식을 얻기위해 다시 한번 읽어 봐야겠다는 생각이 든다.

 해당 책이 나오게 된 연구 결과물을 찾아보니, 아래의 주소를 얻을 수 있었다. 
이 책을 읽기전이나 이후에 읽어보면 조금 도움이 될 것 같다.

Bridging the Gap between Legacy Procedural Code and the Automated Extraction of Design

http://domino.watson.ibm.com/library/cyberdig.nsf/papers/BDD8146A5D1A2A72852574E3004E32BA/$File/rc24669.pdf

YES마니아 : 플래티넘 m**l 2013.06.23. 신고 공감 0 댓글 0