|
디자인 패턴, Software 를 디자인하기 위한 패턴이라니 그 단어만으로도 얼마나 매력적인가?
하지만
GOF(Gang Of Four)의 그 유명한 패턴책 Design Pattern : Elements Reusable Object-Orientid Software (번역서 : GOF의 디자인패턴) 책을 읽기 위해 시도해 본 사람은 90% 정도가 중도에 그만두는 걸 알 수 있다.
나름대로 이유를 꼽아보자면
1. 책의 내용이 쉽게 쓰여지지 않았고,
2. 객체지향 언어(C++)에 익숙하지 않아서 이거나
3. 그리고 그림없이 문장이 길게 이어지는 페이지를 참아내지 못하거나
하는 등등의 이유로 중도에 포기하는 것을 보곤 한다.
하지만,
단순 코더를 넘어서서 소위 할하는 SW 를 설계해야 하는 위치에 올라가려고하면
디자인패턴은 반드시 넘어가야 하는 필수코스이다.
마치 해설서 처럼 나온 'Design pattern explained'가 GOF 책 해석을 대중에게 보낸 1세대 책이라면
이 책, JAVA 언어로 배우는 디자인 패턴 입문은 2세대 책이라고 할 수 있겠다.
특징은
1. 한 챕터가 길지 않으며 그림과 해설이 많아 독서 그 자체의 난이도를 낮추었다.
2. 그리고 가장 활발하게 사용되고 있는 언어인 JAVA 를 베이스 언어로 설명하였으며
3. 연습문제를 통해 독자가 능동적으로 참여해 볼 수 있는 기회를 제공한다.
덧붙여서,
만일 누가 나에게 디자인 패턴 학습 로드맵을 책 중심으로 그려보라고 한다면 아래와 같이 그릴것 같다.
1권. Head First Design Pattern (패턴입문과 중요패턴 위주로 학습)
![]() 2권. JAVA 언어로 배우는 디자인 패턴 입문 (누락된 패턴들과 함께 연습문제 풀이)
![]() 3권. Design pattern explained (실제 업무영역에서 벌어지는 일들과 OOP에 대한 의식 제고)
![]() 4권. GOF의 디자인 패턴 (하나하나 음미하며 복습한다는 의미로)
![]() 위 목록에서 여유가 되면 1권(HF책)부터 시작하고,
빨리 시작하고 싶으면 이 책 부터 시작하면 될것 같다.
특히 이 책은 GOF의 책이 나온 이후로 추가로 논의간 되었던 여러가지 문제( 대표적으로 동시성 문제)에 대한 해설 부분이 추가로 설명되어 있기 때문에, 굳이 어려운 GOF책을 고집할 필요가 없다는 데에 이유 한가지를 더 더해주고 있는 셈이다.
그럼 더운 여름, 이열치열, 열공으로 이겨내길 기원 한다.
Good Luck!! 인거다!
|
|
9년전인가 읽었던 책인데 이번에 우연히 개정판을 읽어보게 되었다.
그때도 디자인 패턴에 대해서 참 쉽고 재밌게 설명해서 참 재미있게 읽었었다.
패턴마다 삽화로 이해하기 쉽게 그려놓은게 인상적이었는데.
이번에 본 개정판도 마찬가지로 재미있게 읽은거 같다.
어떤부분이 개정이 되었는지는 잘 모르겠지만..-_-;;
책의 내용은 디자인 패턴을 쉽게 이해할 수 있게 잘 구성된거 같다.
|
|
쉽고 글자만 빼곡한 책이 아니라서인지 금방 읽어버렸내요;;; 쉽다는게 예제가 간단하다는것이지 패턴에 대한 설명은 입문서로는 충분할듯 싶습니다.
자바초보이시고 패턴에 입문하시려는 분에게는 추천~!
한번 다보고 다시보는 중인데 클래스간의 상관관계에 대한 이해도가 높아져서 전보다 코드를 잘 이해할수 있게 되는것 같습니당.
|
|
GOF의 Design Pattern을 보셨는지? ^^
그 책을 보고 느낀점은 "내용은 100%공감이 가는데, 이것을 내 코드에 어떻게 적용을 하지"라는 점이었습니다.
생소한 용어와 설명에 많은 어려움을 겪었었는데
"Java 언어로 배우는 디자인 패턴 입문"을 보고 GOF책의 위대함을 새삼 느끼게 되었습니다.
이 책에 대한 전체적인 리뷰는 초판의 리뷰"Java 언어로 배우는 디자인 패턴 입문"을 참조하시면 됩니다.
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=263178&CategoryNumber=001001003016003014
완독한 결과, 기존에 "Java 언어로 배우는 디자인 패턴 입문"을 가지고 계셨던 분이라면 굳이 다시 구매하실 필요는 없을 것 같습니다.
당연히 Java 코드를 응용한 디자인 패턴에 관심이 있는 분이라면 읽어보시는 것이 좋을 것 같습니다..
개정판에 대한 내용에 대해서 이야기 하겠습니다.
개정판에 대한 내용은 전작과 95% 정도 같다라는 겁니다. 과연, 뭐가 개정이 되었을까?
새로추가된 내용은 부록편에 있는 한장 반 정도의 분량인 Appendix D Design Pattern Q&A 정도인 것 같습니다.
일부 이전 버젼에서 수정된 내용들은 아래와 같습니다.
1. 개정판에서는 기존 내용을 좀더 눈에 들어오게 새롭게 구성했다라는 점.
2. 목차 부분을 Part별로 나눴다는 점. 전작에서도 "이 책의 구성"부분에서 언급을 했습니다. 그러나, 실제 목차 부분에 적용이 안되어 있어서 조금 불편한 점이 있었는데 개정판에서는 이 부분이 적용이 되어 있네요..
3. 각 장의 실행결과를 Command 창에서의 실행결과로 바뀌었다는 점 이전에는 텍스트로만 나왔습니다.
4. Chapter4의 그림4-1 수정 해당 클래스들을 그에 맞는 패키지로 묶었습니다. framework 패키지에 Factory클래스, Product 클래스를 묶고, idcard 패키지에 IDCard 클래스, IDCardFactory클래스를 묶었습니다.
5. Chapte4의 그림 4-3도 해당 클래스들을 해당 패키지로 묶었습니다. framework 패키지에 Creator클래스, Product 클래스를 묶고, idcard 패키지에 ConcreteCreator 클래스, ConcreteProduct클래스를 묶었습니다.
6. Chapter7의 그림7-1의 Main클래스에서 TextBuild클래스와. HTMLBuilder클래스로 Uses 릴레이션 추가되었습니다.
7. Chapter7의 소스가 약간 변경되었습니다. Builder.java, Director.java, TextBuilder.java, HTMLBuilder.java, Main.java 소스의 메소드 추가및 코드가 변경되어 있습니다.
8. Chapter7의 소스 변경에 따른 Chapter7의 그림 7.-5, 7-6의 uses 릴레이션 추가 및 Builder패턴의 시퀀스 다이어 그램 변경되었습니다.
9. Chapter8의 그림8-3, 8-9에 클래스 다이어그램에 패키지 추가되었습니다.
10. Chapter13의 그림13-1에서 Acceptor인터페이스를 Element 인터페이스로 이름을 변경하였습니다.
11. Chapter14의 연습문제가 하나 추가되었습니다. 그로 인한 연습문제 14-4의 내용이 달라져야 한다. "예제 프로그램의 support 메소드(리스트 14-2)를 ~ ==>
"예제 프로그램의 support 메소드(리스트 14-3)를 ~ 12. Chapteer18의 리스트18-1에 소스코드 약간 수정되었습니다. Vector->ArrayList로 변경 getFruits()메소드 추가되었습니다.
|
|
디자인 패턴은 OOP 소프트웨어 개발자라면 반드시 읽어봐야 할 책 중의 하나이다. OOP 기반 디자인과 개발을 하는 경우 자주 사용되는 Best Practice를 디자인 패턴으로 정리한 것이다. 이제 고전처럼 여겨지는 GoF의 디자인 패턴을 기반으로 예제와 함께 쉽게 다시 풀어 쓴 것이다. 디자인 패턴의 핵심은 바로 인터페이스라는 점을 간파한다면 23개의 패턴을 쉽게 이해하고 구분할 수 있을 것이다. 처음 OOP 개발을 하거나 절차적 개발 습관을 버리지 못한 개발자에게 추천한다. 가끔 예제가 적당하지 않다고 생각되는 것도 자주 등장하지만 이 정도면 무난히 좋은 책이다. 개발할 때 반드시 디자인 패턴을 적용할 필요는 없지만 디자인 패턴은 Best Practice이므로 이를 잘 이해하고 있다면 이것은 개발자의 핵심 무기가 될 수 있다. OOP 개발자라면 여기 나오는 23개의 패턴을 암기할 필요도 있다고 생각된다. 필요하면 쉽게 가져다 쓰거나 응용할 수 있을 정도로 패턴에 익숙해져야 한다. 다만, 디자인 패턴을 무조건 신봉하는 것은 금물이라 생각된다. 예로 향후 확장성 이슈가 그리 크지 않은 프로젝트에 과도한 디자인 패턴을 적용해서 클래스와 인터페이스 등이 방대해지면 이것은 오히려 소프트웨어의 복잡도를 높이는 것이 되기 때문이다. |
|
그간 사실 디자인책, UML책만 보면 두통이 생기곤 했었는데 이 책을 보면서
디자인패턴은 어려운게 아니라 우리가 알게 모르게 사용은 했지만 그 핵심을 못잡고
있어서 타당성을 설명할 수 없었고 커디션에 따라서 코딩이 좋아졌다 나빠졌다를 반복하는
개발자의 일상에 요점을 정리해주었다고나 할까. 이제 현장에서 내 설계가 왜 좋은지 왜 타당한지 말할 수 있는 자신감이 생기게 됩니다. 이 한권으로 디자인의 모든걸 터득했다고 할 수 없지만 뭔가 머리속에서 빙빙 대기만 하고 정리가 안되던걸 정리를 시켜줬다는 그래서 자신감을 가지고 다음 단계로 나아갈 수 있도록 도움을 받았다는 느낌의 책이 아닌가 싶습니다.
한번쯤 저처럼 그간 디자인패턴에 독파에 실패했고 프로젝트 설계때마다 뭔가 개운치 못한 느낌을 가지고 계신 분이라면 가벼운 마음으로 한번 읽기를 추천합니다.
단, 디자인패턴에 대해 수준 높은 내용을 원하시는 분이라면 이책은 맞지 않을거 같다는 느낌이었습니다.
|
|
책 제목은 입문서라고 되어있지만... 입문서라고 보기엔 약간 어려울수도 있다 디자인패턴에 관해서는 쉽게 풀어쓰려는 노력이 보이는 책이다 또한 영진서적의 경우 깔끔한 디자인을 바탕으로... 한눈에 들어오는 강점또한 가지고 있다. 객체지향 프로그래밍을 공부하다보면... 디자인패턴에 관한 책이 필요할 시기가 온다. 나 또한 기존 MVC패턴만 약간 들어본 상태에서... 이 책을 보기 시작했다. 프로그램을 작성하다보면 자신도 모르게...
매번 비슷한 형식으로 프로그램을 짜고 있다는걸 느끼게된다. 이게 자신만의 디자인 패턴일 것이다. 이런느낌이 들때 보면 좋을 책이다. 경험이 쌓일수록 다른 패턴을 받아들이기 어려운 경우가 있다. 그러니 어쩌면 입문 과정에서... 다른 사람이 짜놓은 패턴을 보면서... 자신의 패턴을 고급프로그래머의 패턴과 매칭시키는것도 좋을것이다. 습관이 무섭다고 하지 않았던가? 자신의 패턴 습관을 고급프로그래머에 맞춘다면... 한결 간단하고 재사용성이 좋은 프로그래밍을 할수 있을것이다. 책은 파트가 여러개 나눠져있어 이동시 가벼운 마음에 볼수 있을것 같지만...
무게는 약간 무겁다 ^^; 난 어차피 들고다닐 생각이 없지만...ㅎㅎ '멀티쓰레드편'도 무척이나 기대가 된다.
조만간 한번 구입해서 읽어보아야 겠다. |
|
디자인 패턴은 전부터 좀 공부를 하려고 했는데 귀찮이즘 때문에 미루다 이번에 공부하게 되었다. 뜬 구름 잡는 UML류의 책과 다르게 하나의 실례를 들어서 그에 대해 프로그램과 설명을 엮어가는 구조로 되어 있어 차분하게 배워나가기가 좋다. 물론 정독은 못하고 있지만 틈틈히 하나씩 읽어가도 되는 구조라서 좋다. Chapter 01 Iterator - 순서대로 지정해서 처리하기 Chapter 02 Adapter - 바꿔서 재이용하기 Chapter 11 Composite - 그릇과 내용물을 동일시하기 |
|
학교 수업을 위해 구입한 디자인 패턴 입문. 조금 입문서 치고는 어렵다는 말도 있던데 전공자들이 선택하기엔 괜찮은 도서가 아니었나 싶어요. 개정판이라길래 많이 달라졌나 했는데 재판이 되면서 표지나 편집이 수정된 정도인 것 같더라구요.
쉽게 이해가 되고 예제도 잘 되어 있어서 따라가기 좋았습니다. 이 책을 마스터하고 얼른 다른 도서로 업그레이드 해야겠어요.
|
|
디자인패턴책을 몇권 봤지만 항상 책을 읽는것 조차 힘이 들었습니다. 그렇지만 이 책은 우선 쉽습니다. 그리고 친절합니다.
제목에는 자바로 배운다라고 되어있지만 자바를 굳이 몰라도 상관 없습니다. 개발언어 한가지 정도에만 익숙해져 있는 상태라면 충분히 이해할 수 있습니다.
디자인패턴에 대해서 조금은 가볍게 접근 할 수 있도록 많은 노력을 한 책인것 같습니다. 또한 이 책을 통해 저는 자바언어에 대한 호기심도 많이 생기게 되었습니다. 다른 언어 배우기를 꺼려 하시는 분들에게도 추천을 해드리면 아주 좋을것 같네요. 물론 저처럼 자바를 접해보지 않았던 사람에게만 해당 되겠지만요. |