이미 소장하고 있다면 판매해 보세요.
|
제0장 디자인 패턴의 패러독스 - 디자인 패턴의 약점은?
0-1 디자인 패턴을 사용한 프로젝트는 왜 실패하는가? 0-1-1 디자인 패턴의 이면 0-1-2 디자인 패턴의 약점(1) 0-1-3 디자인 패턴의 약점(2) 0-1-4 디자인 패턴의 약점(3) 0-1-5 디자인 패턴의 약점(4) 0-1-6 그리고 누구도 사용하지 않게 된 디자인 패턴 제1장 비객체 지향에 익숙한 초보자가 익혀야 할 것 1-1 디자인 패턴이 진가를 발휘하려면 1-1-1 디자인 패턴에서 중요한 것 1-2 초보자가 하기 쉬운 것 - 복사하기와 붙여넣기 공격 1-2-1 복사하기와 붙여넣기는 간단하지만… 1-2-2 복사와 붙여넣기에 의한 확장의 결점 1-2-3 소스 코드의 오염은 최소화해야 1-3 초보자가 다음으로 할 것 같은 것 - 같은 처리가 대단히 많다 (1) 1-3-1 같은 처리를 반복하는 것은 간단하지만… 1-3-2 같은 처리를 반복하는 것의 결점 1-4 초보자가 다음으로 할 것 같은 것 - 같은 처리가 대단히 많다 (2) 1-4-1 if문의 다용과 오염 개소의 증대 1-4-2 상속이란 무엇인가 1-4-3 인터페이스를 사용해서 이해하기 힘든 것을 해소 1-4-4 추상 클래스 - 구현을 현재 클래스로부터 분리 제2장 초보자가 그 다음으로 익혀야 할 - 제발 공유화합시다 2-1 클래스의 재사용과 패키지화 2-1-1 클래스의 재사용에서의 문제점 2-1-2 패키지 선언 방법 2-2 클래스명이 중복되고 있을 때는 어떻게 할까? 2-2-1 클래스명의 중복을 해결하는 2가지 방법 제3장 객체를 생성한다 - 객체란 무엇인가? 전부 'static'으로 사용하면 안 되나? 3-1 '객체 지향'과 '객체' 3-1-1 객체는 데이터와 함수의 모임 3-1-2 사물을 추상화해서 생각한다 3-2 객체화와 예외 3-2-1 객체가 생성되는 시점 3-2-2 static 선언에서 객체화의 예외 3-2-3 static의 결점 3-3 static를 사용한 패턴 3-3-1 Singleton 패턴 3-4 접근 제한자 3-4-1 3개의 접근 제한자와 그 역할 3-4-2 객체 지향과 정보 은닉 3-5 접근 제한:final의 3종류 3-5-1 final로 접근을 제한한다 3-6 상속을 할 때 주의할 점(super) 3-6-1 상속과 생성자 3-7 이제 다시 Singleton을 살펴봅시다 3-7-1 객체는 반드시 하나만... 3-7-2 Singleton을 생성하는 시점 제4장 누구도 사용하지 않게 된 디자인 패턴 - 운용에서 시작하는 디자인 패턴 4-1 프로그램의 복잡화는 Facade로 해소 4-1-1 디자인 패턴을 사용하지 않는 편이 좋은 경우 4-1-2 복잡한 프로그램을 해소하는 Facade 패턴 4-2 디자인 패턴 사용에서 중요한 것 4-2-1 '이해'와 '협력', 그리고 '광고' 제5장 연속 배치/탐색을 하고 싶다 - 배열은 어렵다, 배열은 싫다, 배열따윈 최악이다 5-1 자바와 배열의 관계 5-1-1 자바에서 배열 사용 방법 5-1-2 게으른 개발자와 배열 5-1-3 컬렉션 사용 예 5-1-4 '오름차순으로 정렬하는 것'의 어려움 5-1-5 연상 배열의 사용 5-2 Command 패턴에 관하여 5-2-1 커맨드에 의한 배치 처리 5-3 Iterator를 사용해서는 안 되는 패턴 5-3-1 Iterator의 단점은? 제6장 빠르고 안전한 시스템 구축에 향해서 6-1 Flyweight로 데이터 공유 6-1-1 해서는 안 될 데이터 관리의 예 6-1-2 Flyweight를 통해 쉽게 공유 6-2 Proxy로 조금 시간 벌기 6-2-1 객체와 비용에 관해서 생각해 봅시다 6-2-2 Proxy로 객체를 생성하는 시점을 조금 늦춘다 제7장 '사용'도, '재사용'도 할 수 없다면 개조할 수밖에 없다! - 재사용하기 위해 필요한 것 7-1 Adapter의 두 가지 사용법 7-1-1 Adapter 사용법(1) - 다수의 인터페이스 구현 7-1-2 Adapter 사용법(2) - 컴포지션을 사용하는 경우 7-1-3 Adapter의 좋지 않는 사용법 7-2 Bridge의 본질은 Adapter와 같다 7-2-1 Adapter와 Bridge의 차이는? 7-3 Decorator는 또 하나의 '한 겹 씌운' 패턴 7-3-1 기하급수적인 클래스의 증가를 억제한다 제8장 처음부터 다시 작성하는 것이 귀찮다 - 데이터의 작성, 저장, 열람 8-1 Memento로 데이터를 관리한다 8-1-1 데이터 부분만 추출해서 관리한다 8-2 Memento로 실수를 하지 않기 위해서 8-2-1 Memento의 장점과 약점을 이해한다 8-3 Abstract Factory는 복잡한 생성 패턴 8-3-1 객체를 생성하는 클래스 집합 8-3-2 '휴대 전화'를 생각해 봅시다 8-3-3 '사람의 정보'와 '추천 가게의 정보' 제9장 이것이 바로 프레임워크 - 동작의 전파와 조작 9-1 Observer로 버튼 처리를 완벽히 9-1-1 버튼 객체에 관해서 9-1-2 Observer의 도입 9-2 Observer의 확장 9-2-1 Observer의 확장(1) - 내부 클래스 9-2-2 Observer의 확장(2) - 익명 내부 클래스 9-3 try/catch() 절을 사용하여 예외 처리를 '정리해서 처리'한다 9-3-1 예외 처리를 정리해서 낭비를 없앤다 9-4 Mediator에 의한 처리의 집중 관리 9-4-1 클래스 수 증가가 파탄을 부른다 9-4-2 Mediator로 행동을 집중 관리한다 제10장 구현과 기능의 분리 - 이 동작은 이상하다! 바꾸자 10-1 객체 생성과 구축 10-1-1 '상태'와 '전략'을 클래스화한다 10-2 객체를 전달하여 내부에서의 행동을 바꾼다 - Builder 10-2-1 식은 '달걀'과 '피자'가 어떻게 할까? 10-3 상태를 미리 새롭게 해둔다 10-3-1 '피자 조리 방법'에서 '달걀 조리 방법'으로 제11장 실체는 폴더와 같은 것 - 트리 구조를 능숙하게 사용하자! 11-1 트리 구조와 디자인 패턴 11-1-1 Composite와 이진(binary) 트리 11-1-2 Composite의 주의점 11-1-3 트리 구조로 처리를 전파시킨다 11-1-4 행동을 데이터로부터 분리한다 제12장 지금까지와는 전혀 다른 Interpreter 패턴 12-1 가장 어려운 Interpreter 패턴 12-1-1 해석 처리 문법을 클래스화하여 트리 구조를 만든다 제13장 초보자가 경시하는, 그러나 절대 하지 말아야 할 것 - 이해할 수 없고 헷갈리는 프로그램의 근본적인 원인 13-1 인덴트(들여쓰기)가 엉망진창 13-2 명명 규칙이 엉망진창 13-3 그 밖에도 '주의했으면 하는 것' 부록 실행 환경에 관해서 |
|
제0장 디자인 패턴의 패러독스 - 디자인 패턴의 약점은?
0-1 디자인 패턴을 사용한 프로젝트는 왜 실패하는가? 0-1-1 디자인 패턴의 이면 0-1-2 디자인 패턴의 약점(1) 0-1-3 디자인 패턴의 약점(2) 0-1-4 디자인 패턴의 약점(3) 0-1-5 디자인 패턴의 약점(4) 0-1-6 그리고 누구도 사용하지 않게 된 디자인 패턴 제1장 비객체 지향에 익숙한 초보자가 익혀야 할 것 1-1 디자인 패턴이 진가를 발휘하려면 1-1-1 디자인 패턴에서 중요한 것 1-2 초보자가 하기 쉬운 것 - 복사하기와 붙여넣기 공격 1-2-1 복사하기와 붙여넣기는 간단하지만… 1-2-2 복사와 붙여넣기에 의한 확장의 결점 1-2-3 소스 코드의 오염은 최소화해야 1-3 초보자가 다음으로 할 것 같은 것 - 같은 처리가 대단히 많다 (1) 1-3-1 같은 처리를 반복하는 것은 간단하지만… 1-3-2 같은 처리를 반복하는 것의 결점 1-4 초보자가 다음으로 할 것 같은 것 - 같은 처리가 대단히 많다 (2) 1-4-1 if문의 다용과 오염 개소의 증대 1-4-2 상속이란 무엇인가 1-4-3 인터페이스를 사용해서 이해하기 힘든 것을 해소 1-4-4 추상 클래스 - 구현을 현재 클래스로부터 분리 제2장 초보자가 그 다음으로 익혀야 할 - 제발 공유화합시다 2-1 클래스의 재사용과 패키지화 2-1-1 클래스의 재사용에서의 문제점 2-1-2 패키지 선언 방법 2-2 클래스명이 중복되고 있을 때는 어떻게 할까? 2-2-1 클래스명의 중복을 해결하는 2가지 방법 제3장 객체를 생성한다 - 객체란 무엇인가? 전부 'static'으로 사용하면 안 되나? 3-1 '객체 지향'과 '객체' 3-1-1 객체는 데이터와 함수의 모임 3-1-2 사물을 추상화해서 생각한다 3-2 객체화와 예외 3-2-1 객체가 생성되는 시점 3-2-2 static 선언에서 객체화의 예외 3-2-3 static의 결점 3-3 static를 사용한 패턴 3-3-1 Singleton 패턴 3-4 접근 제한자 3-4-1 3개의 접근 제한자와 그 역할 3-4-2 객체 지향과 정보 은닉 3-5 접근 제한:final의 3종류 3-5-1 final로 접근을 제한한다 3-6 상속을 할 때 주의할 점(super) 3-6-1 상속과 생성자 3-7 이제 다시 Singleton을 살펴봅시다 3-7-1 객체는 반드시 하나만... 3-7-2 Singleton을 생성하는 시점 제4장 누구도 사용하지 않게 된 디자인 패턴 - 운용에서 시작하는 디자인 패턴 4-1 프로그램의 복잡화는 Facade로 해소 4-1-1 디자인 패턴을 사용하지 않는 편이 좋은 경우 4-1-2 복잡한 프로그램을 해소하는 Facade 패턴 4-2 디자인 패턴 사용에서 중요한 것 4-2-1 '이해'와 '협력', 그리고 '광고' 제5장 연속 배치/탐색을 하고 싶다 - 배열은 어렵다, 배열은 싫다, 배열따윈 최악이다 5-1 자바와 배열의 관계 5-1-1 자바에서 배열 사용 방법 5-1-2 게으른 개발자와 배열 5-1-3 컬렉션 사용 예 5-1-4 '오름차순으로 정렬하는 것'의 어려움 5-1-5 연상 배열의 사용 5-2 Command 패턴에 관하여 5-2-1 커맨드에 의한 배치 처리 5-3 Iterator를 사용해서는 안 되는 패턴 5-3-1 Iterator의 단점은? 제6장 빠르고 안전한 시스템 구축에 향해서 6-1 Flyweight로 데이터 공유 6-1-1 해서는 안 될 데이터 관리의 예 6-1-2 Flyweight를 통해 쉽게 공유 6-2 Proxy로 조금 시간 벌기 6-2-1 객체와 비용에 관해서 생각해 봅시다 6-2-2 Proxy로 객체를 생성하는 시점을 조금 늦춘다 제7장 '사용'도, '재사용'도 할 수 없다면 개조할 수밖에 없다! - 재사용하기 위해 필요한 것 7-1 Adapter의 두 가지 사용법 7-1-1 Adapter 사용법(1) - 다수의 인터페이스 구현 7-1-2 Adapter 사용법(2) - 컴포지션을 사용하는 경우 7-1-3 Adapter의 좋지 않는 사용법 7-2 Bridge의 본질은 Adapter와 같다 7-2-1 Adapter와 Bridge의 차이는? 7-3 Decorator는 또 하나의 '한 겹 씌운' 패턴 7-3-1 기하급수적인 클래스의 증가를 억제한다 제8장 처음부터 다시 작성하는 것이 귀찮다 - 데이터의 작성, 저장, 열람 8-1 Memento로 데이터를 관리한다 8-1-1 데이터 부분만 추출해서 관리한다 8-2 Memento로 실수를 하지 않기 위해서 8-2-1 Memento의 장점과 약점을 이해한다 8-3 Abstract Factory는 복잡한 생성 패턴 8-3-1 객체를 생성하는 클래스 집합 8-3-2 '휴대 전화'를 생각해 봅시다 8-3-3 '사람의 정보'와 '추천 가게의 정보' 제9장 이것이 바로 프레임워크 - 동작의 전파와 조작 9-1 Observer로 버튼 처리를 완벽히 9-1-1 버튼 객체에 관해서 9-1-2 Observer의 도입 9-2 Observer의 확장 9-2-1 Observer의 확장(1) - 내부 클래스 9-2-2 Observer의 확장(2) - 익명 내부 클래스 9-3 try/catch() 절을 사용하여 예외 처리를 '정리해서 처리'한다 9-3-1 예외 처리를 정리해서 낭비를 없앤다 9-4 Mediator에 의한 처리의 집중 관리 9-4-1 클래스 수 증가가 파탄을 부른다 9-4-2 Mediator로 행동을 집중 관리한다 제10장 구현과 기능의 분리 - 이 동작은 이상하다! 바꾸자 10-1 객체 생성과 구축 10-1-1 '상태'와 '전략'을 클래스화한다 10-2 객체를 전달하여 내부에서의 행동을 바꾼다 - Builder 10-2-1 식은 '달걀'과 '피자'가 어떻게 할까? 10-3 상태를 미리 새롭게 해둔다 10-3-1 '피자 조리 방법'에서 '달걀 조리 방법'으로 제11장 실체는 폴더와 같은 것 - 트리 구조를 능숙하게 사용하자! 11-1 트리 구조와 디자인 패턴 11-1-1 Composite와 이진(binary) 트리 11-1-2 Composite의 주의점 11-1-3 트리 구조로 처리를 전파시킨다 11-1-4 행동을 데이터로부터 분리한다 제12장 지금까지와는 전혀 다른 Interpreter 패턴 12-1 가장 어려운 Interpreter 패턴 12-1-1 해석 처리 문법을 클래스화하여 트리 구조를 만든다 제13장 초보자가 경시하는, 그러나 절대 하지 말아야 할 것 - 이해할 수 없고 헷갈리는 프로그램의 근본적인 원인 13-1 인덴트(들여쓰기)가 엉망진창 13-2 명명 규칙이 엉망진창 13-3 그 밖에도 '주의했으면 하는 것' 부록 실행 환경에 관해서 |