장바구니 담기 close

장바구니에 상품을 담았습니다.

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

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

  • 유키 히로시
  • |
  • 영진닷컴
  • |
  • 2008-05-01 출간
  • |
  • 530페이지
  • |
  • 190 X 240 mm
  • |
  • ISBN 9788931436914
판매가

25,000원

즉시할인가

22,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
22,500

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

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

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

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

4. 챕터별 요약

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 패턴에 대해서 배웁니다.

목차

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_예제 프로그램
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_참고 문헌

저자소개

지은이 유키 히로시(YUKI HIROSHI)

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

홈페이지 : www.hyuki.com

주요 저서
- C 언어 프로그래밍 엣센스
- C 언어 프로그래밍 레슨
- Java 언어프로그래밍 레슨
- Perl 언어프로그래밍 레슨
- 암호 기술 입문 : 비밀의 나라의 앨리스
- 프로그래머의 수학
- Java 언어로 배우는 리팩토링 입문
- Java 언어로 배우는 디자인 패턴 입문
- Java 언어로 배우는 디자인 패턴 입문 - 멀티 쓰레드 편
- 유키 히로시의 Wiki 입문
- 수학걸

도서소개

Java 언어를 통해 알기 쉽게 배우는 디자인 패턴!

『JAVA 언어로 배우는 디자인 패턴 입문』은 디자인 패턴의 기초를 소개하는 입문서이다. 디자인 패턴은 먼 장래를 위해 배우는 것이 아니다. 우리들이 매일 사용하고 있는 프로그램을 새로운 관점에서 바라볼 수 있게 해주고, 재사용하기 쉽고, 기능 확장을 손쉽게 하는 소프트웨어를 만들기 위한 유익한 기법이다.

본문은 GoF가 정리한 23개의 디자인 패턴을 하나씩 다루면서 객체 지향에 대해 잘 모르는 초보자도 이해하기 쉽도록 정리하였다. 'GoF(the Gang of Four)'는 개발자의 경험이나 내적인 축적을 디자인 패턴이라는 형태로 정리한 4명(Erich Gamma, Richard Helm, Ralph Johnson, John Vissides)을 부르는 말이다.

이 책은 GoF가 정리한 23개의 디자인 패턴 전부를 Java 언어로 작성된 구체적인 예제 프로그램을 제시하며 설명한다. 대부분의 예제 프로그램은 100줄 정도의 작은 프로그램으로 구성하였다. 그리고 대부분 영어인 디자인 패턴의 이름이 어떤 의미를 가지고 있는가를 설명한다. 또한 패턴을 배우기 위한 연습문제와 해답도 제공한다. (개정판)

이 책의 구매 포인트!
단순한 이론이나 논리를 제시하는 것이 아니라 패턴을 사용한 구체적인 프로그램을 자바 언어로 기술하여 실제로 동작시키고 있다. 객체 지향에 흥미가 있는 사람, 디자인 패턴에 관심이 있는 사람, 추상 클래스나 인터페이스에 대한 이해가 부족하다고 느끼는 Java 프로그래머들에게 유용하다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.