본문 바로가기

BOOK

Java 언어로 배우는 디자인 패턴 입문


Java 언어로 배우는 디자인 패턴 입문 Java言語で?ぶデザインパタ?ン入門
유키 히로시| 이규흥| 영진닷컴| 2008.04.28 | 192p | ISBN : 9788931436914
 

책 소개
기획의도 및 타깃
프로그램을 개발할 때 예전과 같은 작업을 반복하고 있다는 느낌이 들 때가 있습니다. 경험이 쌓일수록 이러한 자신만의 패턴이 머리 속에 축적되고, 그 패턴을 다음 개발에 적용할 수 있게 됩니다. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 4명은 개발자의 '경험'이나 '내적인 축적'을 <디자인 패턴>이라는 형태로 정리하였습니다. 이 4명을 the Gang of Four 또는 GoF라고 부릅니다.
이 책에서는 자바 언어를 통해 GoF가 정리한 23개의 디자인 패턴을 하나씩 알기 쉽게 설명하고 있습니다. 이전 버전에서 다소 부족했던 설명과 수많은 독자들의 피드백을 반영하여 구성과 내용을 전면적으로 바꾼 ‘개정판’으로 새롭게 구성하였습니다.
이 책은 디자인 패턴의 책이지만, Java 언어의 기능에 관한 보충적인 해설도 하고 있기 때문에 읽는 동안에 Java에 대한 이해도 깊어질 것입니다. 특히 추상 클래스나 인터페이스의 목적을 정확하게 이해하지 못했던 독자에게는 크게 도움이 될 것입니다. 디자인 패턴과 객체지향에 흥미가 있는 사람, 추상 클래스나 인터페이스에 대한 이해가 부족하다고 느끼는 자바 프로그래머에게 추천합니다.

개요 및 내용
이 책은 디자인 패턴의 입문서입니다. GoF가 정리한 23개의 디자인 패턴을 하나씩 다루면서 객체 지향을 잘 모르는 초보자도 이해하기 쉽도록 정리하고 있습니다. 단순한 이론이나 논리을 제시하는 것이 아니라 패턴을 사용한 구체적인 프로그램을 Java 언어로 기술하여 실제로 동작시키고 있습니다. 디자인 패턴은 먼 장래를 위해 배우는 것이 아닙니다. 우리들이 매일 사용하고 있는 프로그램을 새로운 관점에서 바라볼 수 있게 해주고, 재사용하기 쉽고, 기능 확장을 손쉽게 하는 소프트웨어를 만들기 위한 유익한 기법입니다.

특징 또는 강점
- GoF의 23개 디자인 패턴에 대해서 Java 언어로 만들어진 구체적인 예제 프로그램을 통해 알기 쉽게 설명합니다. 대부분의 예제 프로그램은 100줄 정도의 길지 않은 구성으로 되어있어 초보자도 이해할 수 있습니다.
- 어렵게 느낄 수 있는 디자인 패턴의 용어를 쉬운 설명과 패턴을 직관적으로 표현한 일러스트를 통해 보다 친숙하게 접근할 수 있습니다. 또한 디자인 패턴의 해설뿐 아니라 Java 언어를 깊이 알기 위한 다양한 정보도 제시합니다.
-디자인 패턴은 카탈로그를 통째로 암기하기 위해 있는 것이 아닙니다. 프로그램을 읽어 패턴을 파악한 후, 프로그래밍을 할 때 패턴을 적용하는 연습을 할 필요가 있습니다. 이 책에서는 패턴을 익히기 위한 연습문제와 해답을 싣고 있습니다.

Chapter 01 Iterator - 순서대로 지정해서 처리하기
복수의 요소가 모여 있는 중에서 요소를 하나씩 꺼내는 Iterator 패턴에 대해서 배웁니다.

Chapter 02 Adapter - 바꿔서 재이용하기
서로 다른 인터페이스(API)를 갖는 클래스들을 연결하는 Adapter 패턴에 대해서 배웁니다.

Chapter 03 Template Method - 하위 클래스에서 구체적으로 처리하기
상위 클래스에서 처리의 뼈대를 세우고, 구체적인 처리를 하위 클래스에서 실행하는 Template Method 패턴에 대해서 배웁니다.

Chapter 04 Factory Method - 하위 클래스에서 인스턴스 만들기
상위 클래스에서 인스턴스 작성법의 뼈대를 세우고, 구체적인 작성은 하위 클래스에서 실행하는 Factory Method 패턴에 대해서 배웁니다.

Chapter 05 Singleton - 인스턴스를 한 개만 만들기
인스턴스가 하나만 존재하는 Singleton 패턴에 대해서 배웁니다.

Chapter 06 Prototype - 복사해서 인스턴스 만들기
모형이 되는 인스턴스를 복사해서 인스턴스를 만드는 Prototype 패턴에 대해서 배웁니다.

Chapter 07 Builder - 복잡한 인스턴스 조립하기
복잡한 인스턴스를 단계적으로 조립하는 Builder 패턴에 대해서 배웁니다.

Chapter 08 Abstarct Factory - 관련 부품을 조합해서 제품 만들기
공장과 같이 부품을 조합해서 인스턴스 생성을 실행하는 Abstract Factory 패턴에 대해서 배웁니다.

Chapter 09 Bridge - 기능 계층과 구현 계층 분리하기
2종류의 확장이 혼재하는 프로그램을 기능의 계층과 구현의 계층으로 분리하고, 그 사이를 연결하는 Bridge 패턴에 대해서 배웁니다.

Chapter 10 Strategy - 알고리즘을 모두 바꾸기
알고리즘을 전부 교체해서 개량하기 쉽도록 하는 Strategy 패턴에 대해서 배웁니다.

Chapter 11 Composite - 그릇과 내용물을 동일시하기
그릇과 내용물을 동일시해서, 재귀적인 구조를 구축하는 Composite 패턴에 대해서 배웁니다.

Chapter 12 Decorator - 장식과 내용물을 동일시하기
장식과 내용물을 동일시해서 장식을 여러 겹 중복되게 하는 Decorator 패턴에 대해서 배웁니다.

Chapter 13 Visitor - 데이터 구조를 돌아다니면서 처리하기
데이터 구조를 돌아다니면서 동일한 조작을 반복해서 적용하는 Visitor 패턴에 대해서 배웁니다.

Chapter 14 Chain of Responsibility - 책임 떠넘기기
복수의 오브젝트(객체)가 연결되어 있는 내부의 어딘가에서 일을 수행하는 Chain of Responsibility 패턴에 대해서 배웁니다.

Chapter 15 Facade - 단순한 창구
복잡하게 얽힌 클래스를 개별적으로 제어하는 것이 아니라, 창구 역할을 하는 클래스를 하나 배치해서 시스템 전체의 조작성을 좋게 하는 Facade 패턴에 대해서 배웁니다.

Chapter 16 Mediator - 중개인을 통해서 처리하기
복수의 클래스가 상호간에 직접 의사 소통을 하는 것이 아니라, 상담역을 하는 클래스를 하나 준비하고, 그 클래스하고만 의사 소통을 하게 해서 프로그램을 단순하게 만드는 Mediator 패턴에 대해서 배웁니다.

Chapter 17 Observer - 상태의 변화를 알려주기
상태가 변화하는 클래스와 그변화를 통지받는 클래스를 분리해서 생각하는 Observer 패턴에 대해서 배웁니다.

Chapter 18 Memento - 상태를 저장하기
현재의 상태를 보존하고 필요할 때 실행을 취소해서 복귀시킬 수 있는 Memento 패턴에 대해서 배웁니다.

Chapter 19 State - 상태를 클래스로 표현하기
상태를 클래스로 표현하고 상태에 적합한 switch 문을 줄이는 State 패턴에 대해서 배웁니다.

Chapter 20 Flyweight - 동일한 것을 공유해서 낭비 없애기
복수의 장소에서 동일한 것이 등장할 때 그것들을 공유해서 낭비를 없애는 Flyweight 패턴에 대해서 배웁니다.

Chapter 21 Proxy - 필요해지면 만들기
정말로 목적한 것이 필요하게 될 때까지 대리인을 사용해서 처리를 진행시키는 Proxy 패턴에 대해서 배웁니다.

Chapter 22 Command - 명령을 클래스로 하기
요구나 명령을 형태로 만들어서 클래스로 표현하는 Command 패턴에 대해서 배웁니다.

Chapter 23 Interpreter - 문법규칙을 클래스로 표현하기
문법 규칙을 클래스로 표현하는 Interpreter 패턴에 대해서 배웁니다. [인터파크 제공]
이 책의 통합검색 결과보기
TOP
작가 소개
저자 | 유키 히로시
유키 히로시(YUKI HIROSHI)

C.S.루이스, 무라카미 하루키의 책과 성경 읽기를 즐기며, 바로크 음악과 산책을 좋아하는 1963년생 프로그래머

홈페이지 : www.hyuki.com

주요 저서
- C 언어 프로그래밍 엣센스
- C 언어 프로그래밍 레슨
- Java 언어프로그래밍 레슨
- Perl 언어프로그래밍 레슨
- 암호 기술 입문 : 비밀의 나라의 앨리스
- 프로그래머의 수학
- Java 언어로 배우는 리팩토링 입문
- Java 언어로 배우는 디자인 패턴 입문
- Java 언어로 배우는 디자인 패턴 입문 - 멀티 쓰레드 편
- 유키 히로시의 Wiki 입문
- 수학걸 [강컴닷컴 제공]
작가의 통합검색 결과보기
TOP
목차
Part 1 디자인 패턴과 친해지기

Chapter 01 Iterator - 순서대로 지정해서 처리하기
1_Iterator 패턴
2_예제 프로그램
3_Iterator 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 02 Adapter - 바꿔서 재이용하기
1_Adapter 패턴
2_예제 프로그램(1)(상속을 사용한 Adapter 패턴)
3_예제 프로그램(2)(위임을 사용한 Adapter 패턴)
4_Adapter 패턴의 등장인물
5_독자의 사고를 넓히기 위한 힌트
6_관련 패턴

Part 2 하위 클래스에게 위임하기

Chapter 03 Template Method - 하위 클래스에서 구체적으로 처리하기
1_Template Method 패턴
2_예제 프로그램
3_Template Method 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴
6_보강 : 클래스 계층과 추상 클래스

Chapter 04 Factory Method - 하위 클래스에서 인스턴스 만들기
1_Factory Method 패턴
2_예제 프로그램
3_Factory Method 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Part 3 인스턴스 만들기

Chapter 05 Singleton - 인스턴스를 한 개만 만들기
1_Singleton 패턴
2_예제 프로그램
3_Singleton 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 06 Prototype - 복사해서 인스턴스 만들기
1_Prototype 패턴
2_예제 프로그램
3_Prototype 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴
6_보강 : clone 메소드와 java.lang.Cloneable 인터페이스

Chapter 07 Builder - 복잡한 인스턴스 조립하기
1_Builder 패턴
2_예제 프로그램
3_Builder 패턴의 등장인물
4_관련 패턴
5_독자의 사고를 넓히기 위한 힌트

Chapter 08 Abstarct Factory - 관련 부품을 조합해서 제품 만들기
1_Abstract Factroy 패턴
2_예제 프로그램
3_예제 프로그램에 별도의 구체적인 공장을 추가하기
4_Abstract Factory 패턴의 등장인물
5_독자의 사고를 넓히기 위한 힌트
6_관련 패턴
7_보강 : 인스턴스를 만드는 다양한 방법

Part 4 분리해서 생각하기

Chapter 09 Bridge - 기능 계층과 구현 계층 분리하기
1_Bridge 패턴
2_예제 프로그램
3_Bridge 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 10 Strategy - 알고리즘을 모두 바꾸기
1_Strategy 패턴
2_예제 프로그램
3_Strategy 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴
  
Part 5 동일시하기

Chapter 11 Composite - 그릇과 내용물을 동일시하기
1_Composite 패턴
2_예제 프로그램
3_Composite 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 12 Decorator - 장식과 내용물을 동일시하기
1_Decorator 패턴
2_예제 프로그램
3_Decorator 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴
6_보강 : 상속의 동일시와 위임의 동일시

Part 6 구조를 돌아다니기

Chapter 13 Visitor - 데이터 구조를 돌아다니면서 처리하기
1_Visitor 패턴
2_예제 프로그램
3_Visitor 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 14 Chain of Responsibility - 책임 떠넘기기
1_Chain of Responsibility 패턴
2_예제 프로그램
3_Chain of Responsibility 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Part 7 단순화하기

Chapter 15 Facade - 단순한 창구
1_Facade 패턴
2_예제 프로그램
3_Facade 패턴의 등장인물
4_독자의 사고를 넓혀주기 위한 힌트
5_관련 패턴

Chapter 16 Mediator - 중개인을 통해서 처리하기
1_Mediator 패턴
2_예제 족慣瀏?BR>3_Mediator 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Part 8 상태를 관리하기

Chapter 17 Observer - 상태의 변화를 알려주기
1_Observer 패턴
2_예제 프로그램
3_Observer 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_보강 : java.util.Observer 인터페이스
6_관련 패턴

Chapter 18 Memento - 상태를 저장하기
1_Memento 패턴
2_예제 프로그램
3_Memento 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 19 State - 상태를 클래스로 표현하기
1_State 패턴
2_예제 프로그램
3_State 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Part 9 낭비 없애기

Chapter 20 Flyweight - 동일한 것을 공유해서 낭비 없애기
1_Flyweight 패턴
2_예제 프로그램
3_Flyweight 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 21 Proxy - 필요해지면 만들기
1_Proxy 패턴
2_예제 프로그램
3_Proxy 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Part 10 클래스로 표현하기

Chapter 22 Command - 명령을 클래스로 하기
1_Command 패턴
2_예제 프로그램
3_Command 패턴의 등장인물
4_독자의 사고를 넓히기 위한 힌트
5_관련 패턴

Chapter 23 Interpreter - 문법규칙을 클래스로 표현하기
1_Interpreter 패턴
2_미니 언어
3_예제 프로그램
4_Interpreter 패턴의 등장인물
5_독자의 사고를 넓히기 위한 힌트
6_관련 패턴

Appendix 부록
A_연습문제 해답
B_예제 프로그램의 실행 순서
C_GoF에 따른 디자인 패턴의 분류
D_디자인 패턴 Q&A
E_참고 문헌

[인터파크 제공]