파이썬 디자인 패턴 2/e [디자인 패턴을 사용해 소프트웨어 설계 문제 해결하기]
- 원서명Learning Python Design Patterns - Second Edition: Leverage the power of Python design patterns to solve real-world problems in software architecture and design (ISBN 9781785888038)
- 지은이체탄 기리다(Chetan Giridhar)
- 옮긴이이우현
- ISBN : 9791161752440
- 15,000원
- 2018년 11월 30일 펴냄
- 페이퍼백 | 184쪽 | 188*235mm
- 시리즈 : 소프트웨어 아키텍처
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
소프트웨어의 유지보수와 확장성을 생각한다면 설계 단계에서 디자인 패턴은 최선의 해결책이다. 이 책에서는 파이썬을 기반으로 GoF가 처음 제시한 대표적인 디자인 패턴을 설명한다. 현업에서 실제로 사용되는 다양한 예제를 보면서 목적에 적합한 디자인 패턴을 선택하고 이를 기반으로 파이썬 코드를 작성해본다. 이 책에서 설명하는 객체지향의 기본 원리 및 중요 프로그래밍 원칙은 소프트웨어 설계에 매우 유용할 것이다. 디자인 패턴을 기반으로 한 최적화된 소프트웨어 설계는 프로그래밍에서는 빠질 수 없는 필수 요소다.
이 책에서 다루는 내용
■ 소프트웨어 설계 능력 향상
■ 흔히 발생하는 설계 문제의 해결책 제시
■ 소프트웨어 설계의 기초 개념인 느슨한 조합과 할리우드 원리, 개방-폐쇄 원칙 소개
■ 객체지향 프로그래밍의 이해 및 적용
■ 생성 디자인 패턴과 다양한 생성자를 적용한 문제 해결
■ 더 큰 애플리케이션 개발을 위해 구조 디자인 패턴과 객체와 클래스 간 상호작용 이해
■ 커맨드 패턴과 옵서버 패턴으로 객체 간의 상호작용 제어
■ 파이썬 디자인 패턴으로 애플리케이션의 생산성 향상 및 코드 구조 개선
이 책의 대상 독자
디자인 패턴의 원칙과 파이썬 애플리케이션 개발에 관심을 갖는 파이썬 개발자나 소프트웨어 아키텍트를 위한 책이다. 기초적인 프로그래밍 원리에 대한 이해와 초급자 수준의 파이썬 개발 능력을 요구한다. 학생과 교육자에게도 유용할 것이다.
이 책의 구성
1장, ‘디자인 패턴 개요’에서는 객체지향 프로그래밍의 개념과 원칙을 살펴본다. 디자인 패턴이 소프트웨어 개발에서 언제 어떻게 사용되는지 알 수 있도록 디자인 패턴의 개념도 학습한다.
2장, ‘싱글톤 디자인 패턴’은 가장 기본적이고 널리 쓰이는 생성 패턴의 한 종류다. 파이썬으로 싱글톤 패턴을 구현하는 몇 가지 예제를 소개하고 싱글톤 디자인 패턴의 변형인 모노스테이트 (또는 Borg) 디자인 패턴도 알아본다.
3장, ‘팩토리 패턴 - 팩토리를 사용해 객체 생성하기’에서는 또 다른 생성 패턴인 팩토리 패턴을 소개한다. 그리고 팩토리 메소드 패턴과 추상 팩토리 패턴을 UML 다이어그램과 파이썬 3.5로 구현한 실제 사용 예제를 통해 학습한다.
4장, ‘퍼사드의 다양성’에서는 구조 디자인 패턴을 소개한다. 퍼사드가 무엇이고 퍼사드 디자인 패턴이 소프트웨어 설계에서 어떻게 사용되는지 알아본다. 파이썬으로 실제 사용 예제를 구현해 볼 것이다.
5장, ‘프록시 패턴 - 객체 접근 제어 구조’에서는 객체 접근 제어 구조는 디자인 패턴의 한 종류인 프록시 패턴을 다룬다. 프록시의 개념과 프록시 디자인 패턴이 소프트웨어 설계에서 어떻게 사용되는지 살펴본다. 프록시 패턴의 변형인 가상 프록시와 스마트 프록시, 원격 프록시, 보호 프록시를 소개한다.
6장, ‘옵서버 패턴 - 객체 이해하기’에서는 세 번째 디자인 패턴 분류인 행위 디자인 패턴을 학습한다. 예제와 함께 옵서버 디자인 패턴을 학습하고 푸시-풀 모델과 느슨한 결합 원칙을 소개한다. 나아가 옵서버 패턴이 클라우드 및 분산 시스템에서 어떻게 사용될 수 있는지 알아본다.
7장, ‘커맨드 패턴 - 요청 패턴화’에서는 커맨드 디자인 패턴을 소개한다. 커맨드 디자인 패턴이 실제로 어떤 상황에서 사용되는지 알아보고 파이썬으로 구현해본다. 나아가 리두/롤백 기능과 비동기 작업 수행을 어떻게 커맨드 패턴으로 구현할 수 있을지 알아본다.
8장, ‘템플릿 메소드 패턴 - 알고리즘의 캡슐화’에서는 템플릿 메소드 패턴을 소개한다. 커맨드 패턴과 마찬가지로 템플릿 메소드 패턴은 행위 패턴의 한 종류다. 템플릿 메소드 패턴에서 후크가 사용되는 예제를 살펴보고 할리우드 원칙을 소개한다.
9장, ‘모델-뷰-컨트롤러 - 컴파운드 패턴’에서는 컴파운드 패턴을 다룬다. 모델-뷰-컨트롤러 디자인 패턴이 언제 어떻게 사용되는지 알아본다. MVC 패턴은 가장 널리 쓰이는 패턴이며 많은 파이썬 프레임워크가 이를 기반으로 한다. 토네이도(페이스북에서 사용하는 프레임워크)로 구현한 애플리케이션 예제를 작성하고 MVC 패턴을 학습해본다.
10장, ‘상태 디자인 패턴’에서는 커맨드 디자인 패턴과 템플릿 디자인 패턴과 같은 행위 패턴인 상태 디자인 패턴을 소개한다. 이 패턴이 소프트웨어 설계에서 어 떻게 사용되는지 알아본다.
11장, ‘안티 패턴’은 소프트웨어 아키텍트 또는 개발자로서 해서는 안될 행동을 설명하는 안티 패턴을 소개한다.
목차
목차
- 1장. 디자인 패턴 개요
- 객체지향 프로그래밍
- 객체
- 클래스
- 메소드
- 객체지향 프로그래밍의 주요 기능
- 캡슐화
- 다형성
- 상속
- 추상화
- 컴포지션
- 객체지향 디자인의 기본 원칙
- 개방-폐쇄 원칙
- 제어 반전 원칙
- 인터페이스 분리 원칙
- 단일 책임 원칙
- 치환 원칙
- 디자인 패턴의 개념
- 디자인 패턴의 장점
- 디자인 패턴 용어
- 디자인 패턴 맥락
- 동적 언어 패턴
- 디자인 패턴의 분류
- 생성 패턴
- 구조 패턴
- 행위 패턴
- 정리
- 객체지향 프로그래밍
- 2장. 싱글톤 디자인 패턴
- 싱글톤 디자인 패턴 개요
- 파이썬 싱글톤 패턴 구현
- 게으른 초기화
- 모듈 싱글톤
- 모노스테이트 싱글톤 패턴
- 싱글톤과 메타클래스
- 싱글톤 패턴 사용 사례 1
- 싱글톤 패턴 사용 사례 2
- 싱글톤 패턴의 단점
- 정리
- 싱글톤 디자인 패턴 개요
- 3장. 팩토리 패턴 - 팩토리를 사용해 객체 생성하기
- 팩토리 패턴 개요
- 심플 팩토리 패턴
- 팩토리 메소드 패턴
- 팩토리 메소드 구현
- 팩토리 메소드 패턴의 장점
- 추상 팩토리 패턴
- 추상 팩토리 패턴 구현
- 팩토리 메소드 vs 추상 팩토리 메소드
- 정리
- 4장. 퍼사드의 다양성
- 구조 디자인 패턴 개요
- 퍼사드 디자인 패턴 개요
- UML 클래스 다이어그램
- 퍼사드
- 시스템
- 클라이언트
- 퍼사드 패턴 구현
- 최소 지식 원칙
- 자주 묻는 질문들
- 정리
- 5장. 프록시 패턴 - 객체 접근 제어
- 프록시 디자인 패턴의 개요
- 프록시 패턴의 UML 다이어그램
- 프록시의 여러 유형들
- 가상 프록시
- 원격 프록시
- 보호 프록시
- 스마트 프록시
- 프록시 패턴의 사용 사례
- 프록시 패턴의 장점
- 퍼사드와 프록시 패턴 비교
- 자주 묻는 질문들
- 정리
- 6장. 옵서버 패턴 - 객체 이해하기
- 행위 패턴 개요
- 옵서버 패턴 이해
- UML 다이어그램
- 옵서버 패턴 사용 사례
- 옵서버 패턴 메소드
- 풀 모델
- 푸시 모델
- 느슨한 결합과 옵서버 패턴
- 옵서버 패턴의 장단점
- 자주 묻는 질문들
- 정리
- 7장. 커맨드 패턴 - 요청 패턴화
- 커맨드 디자인 패턴
- 커맨드 패턴 구성 요소
- 커맨드 패턴의 UML 다이어그램
- 커맨드 패턴 실제 활용 사례
- 클래스 설계
- 커맨드 패턴의 장단점
- 자주 묻는 질문들
- 정리
- 8장. 템플릿 메소드 패턴 - 알고리즘의 캡슐화
- 템플릿 메소드 패턴 개요
- 템플릿 메소드 패턴 이해
- 템플릿 메소드 패턴의 UML 다이어그램
- 템플릿 메소드 패턴 사용 사례
- 템플릿 메소드 패턴 - 후크
- 할리우드 원칙과 탬플릿 메소드
- 템플릿 메소드 패턴의 장단점
- 자주 묻는 질문들
- 정리
- 템플릿 메소드 패턴 개요
- 9장. 모델 - 뷰 컨트롤러 - 컴파운드 패턴
- 컴파운드 패턴 개요
- 모델-뷰-컨트롤러 패턴
- 모델 - 애플리케이션의 뇌
- 뷰 - 외모
- 컨트롤러 - 접착제
- MVC 패턴의 UML 다이어그램
- MVC 패턴 사용 사례
- 모듈
- MVC 패턴의 장점
- 자주 묻는 질문들
- 정리
- 10장. 상태 디자인 패턴
- 상태 디자인 패턴 개요
- 상태 디자인 패턴 이해
- 상태 디자인 패턴의 UML 다이어그램
- 상태 디자인 패턴 예제
- 파이썬 3.5로 구현한 상태 디자인 패턴
- 상태 디자인 패턴의 장단점
- 정리
- 상태 디자인 패턴 개요
- 11장. 안티 패턴
- 안티 패턴 개요
- 소프트웨어 개발 안티 패턴
- 스파게티 코드
- 황금 망치
- 용암류
- 복사-붙여넣기 또는 잘라내기-붙여넣기 프로그래밍
- 소프트웨어 설계 안티 패턴
- 시간 낭비
- 제품/기술 종속
- 다수 디자인
도서 오류 신고
정오표
정오표
[p.5 : 아래서 6행]
(GoF, Gong of Four)
->
(GoF, Gang of Four)