초-중급 개발자 스킬업! 엘리멘탈 디자인 패턴
Elemental Design Patterns : 객체지향과 디자인 패턴의 연결 고리
디자인 패턴은 기술인가, 과학인가?
디자인 패턴을 소프트웨어 공학의 구성요소로 볼 수 있는가? 이 분야에 패턴이 적합한지 판단할 수 있는가? 각 패턴이 얼마나 서로 어울리는지 장담할 수 있는가? 패턴은 가져다 쓰기만 하면 되는 냉동식품인가?
패턴을 종합적인 방법으로 접근할 수 없다면 우리는 이에 대한 답을 내릴 수 없다. 엘리멘틀 디자인 패턴은 패턴을 네 가지 카테고리로 나누며, 패턴을 종합적인 관점에서 볼 수 있는 도구를 제공한다.
- 저자 : 제이슨 맥컴 스미스
- 번역 : 김지원
- 출간 : 2013-05-02
Elemental Design Patterns 객체지향과 디자인 패턴의 연결 고리 - 제이슨 맥컴 스미스, 한빛 미디어
1) Elemental Design Patterns 이란?
자바/C/C++등 객체지향에 대한 근본적인 이해도가 있는 개발자를 위한 더 나은 생각 정리를 위한 새로운 정리 방법이라 정의 할 수 있다.
쉽게 설명하여 언어에 관한 메소드, 객체에 대하여 이해한 후 개발 목표로 하는 프로그램을 조금 더 쉽게 정의하는 설계도를 만들 수 있는
좋은 가이드를 제공한다. 본 책을 읽은 개발자는 자바 개발을 함에 더 간단한 코드나 함수를 사용 할 수 있진 않지만 생각 정리를 도표/설계화 하여
빠르게 정의 내릴 수 있다.
메소드,객체 등 프로그램의 기본 구조를 요소화 하여, 각 요소의 특징을 정의, 상관관계를 만드는 새로운 표기법을 제시한다.
위 책이 많이 어렵다 느껴진다면 한빛 미디어의 Head First Design Patterns를 읽길 권한다. 디자인 패턴은 분명 어느 정도 이상의 수준을 갖춘
개발자가 반드시 뛰어 넘어야 할 분야다. 잘 하는 개발자가 되기 위해서는 코드를 단순히 구현함에 그치는 것이 아니라
확장성과 수정가능성을 고려하여 개발을 진행해야 하기 때문이다. 분명 처음 디자인 패턴을 접하는 개발자는 헤드퍼스트를 먼저 접하길 권한다.
헤드퍼스트에는 예제, 그림등이 활용되어 빠른 기초 이해를 유도한다. 헤드퍼스트 이해가 완료되면 곧바로 위 책을 읽어도 좋다.
2) Elemental Design Patterns 는 무엇을 말하는가?
객체유사도와 메서드유사도의 정도를 기준으로 EDP를 2차원화하여 4종을 분류한다.
EDP의 4분류는 병합(Conglomeration) 되부름(Recursion) 위임(Delegation) 리디렉션(Redirection)이다. 언어를 공부하면서 들어본 분류도 있고
처음 듣는 분류도 있지만, 책을 읽으면 쉽게 이해가 될 정도로 당연한 내용이다. 그동안 공부했던 방법들을 어떻게 "명칭화"하는가의 차이일뿐
2차원으로 분류된 EDP를 다시 3차원화 하여 세부적으로 정의하는 것이 이 책의 기초이다.
얼마나 많은 내용을 분류화하여 "정의"했는가. 를 다룬 후, PIN 박스를 이용하여 UML로 작성하기에는 너무 복잡하고 다양한 내용을 간단하게
재정의 시킬 수 있다. 자세한 내용은 책을 읽어보면 큰 무리 없이 이해할 수 있지만, C와 자바를 넘나드는 설명에 한쪽으로만 언어를 이해한 개발자는
어려움을 겪을 수 도 있다. 오브젝트 C와 JAVA를 넘나들며 디자인 패턴을 설명하는 내용을 읽으면서, 자바의 장점과 C의 장점을 한번더 깨닫는 계기가 되었다.
3) Elemental Design Patterns의 결론?
언어를 완벽히 이해하지 못한 초보 개발자는, 책을 다시 보고 온 후 헤드퍼스트로 입문을 시작하자.
실력이 많이 향상된 개발자는 Elemental Design Patterns를 이해하고 한단계 더 레벨업 하자!