책 소개
요약
수많은 개발자들이 작업 시의 문제를 해결하며 발전시켜온 노하우를 축적하고, 추후 재사용을 위해 이름 붙인 규약을 디자인 패턴이라 부른다. 프로그래머들이 협업하면서 디자인 패턴을 사용하면, 장황한 설명 없이 효율적으로 자신의 의사를 전달하고 불필요한 오해를 피할 수 있다. 이 책은 파이썬(Python)이라는 간결하고 강력한 언어를 통해 디자인 패턴(Design Pattern)을 설명한다. 객체 지향의 핵심 기능을 모두 가지고 있는 파이썬으로 직접 예제 코드를 구현하며 디자인 패턴의 세계로 빠져 보자.
이 책에서 다루는 내용
■ 최소한의 수정만으로 동일한 알고리즘의 여러 가지 구현 만들기
■ 발행-구독(publisher-subscriber) 패턴 구현하기
■ 인스턴스가 단 하나만 필요한 객체 만들기
■ 퍼사드(Façade) 디자인 패턴을 사용해서 간단한 인터페이스 만들기
■ 인터페이스는 그대로 두고 기능을 향상시키기
■ 단 하나의 인스턴스만 필요할 때 객체를 만드는 방법
■ 모델-뷰-컨트롤러(MVC) 패턴을 이용해서 URL 압축기 구현하기
이 책의 대상 독자
이 책은 파이썬을 어느 정도 알고 있고 디자인 패턴에 대한 지식을 한 단계 높이고 싶은 개발자에게 적합하다.
이 책의 구성
1장, ‘모델-뷰-컨트롤러’에서는 모델, 뷰, 컨트롤러가 무엇인지 설명하고 사용하는 방법을 보여준다. 마지막으로 이 패턴을 사용해서 간단한 URL 압축기를 구현해본다.
2장, ‘싱글턴 패턴을 사용한 유일 객체 생성하기’에서는 애플리케이션을 실행하는 동안 단 하나의 객체만 생성하는 클래스를 만드는 방법을 알아본다.
3장, ‘객체 생성 팩토리 만들기’에서는 간단한 팩토리 메소드(Factory Method)와 추상 팩토리 패턴(Abstract Factory pattern)을 설명하고 객체 생성을 분리하는 방법을 알아본다.
4장, ‘퍼사드(Façade) 디자인 패턴’에서는 복잡한 서브시스템의 인터페이스를 간소화해서 개발을 용이하게 하는 방법을 알아본다.
5장, ‘프록시와 옵저버 패턴으로 객체 간 통신하기’는 발행-구독(publisher-subscriber) 모델과 다른 객체에 대한 접근을 제어하는 프록시를 구현하기 위한 패턴을 설명한다.
6장, ‘커맨드 패턴으로 호출 캡슐화하기’에서는 동작과 파라미터를 캡슐화하는 방법을 설명한다.
7장, ‘템플릿 메소드로 알고리즘 재정의하기’는 최소한의 수정으로 여러 알고리즘의 변형을 생성하는 패턴을 설명한다.
목차
목차
- 1장. 모델-뷰-컨트롤러
- 모델: 애플리케이션의 지식
- 뷰: 지식의 표현
- 컨트롤러: 모델과 뷰의 연결고리
- MVC 사용의 장점
- 파이썬 구현
- 요약
- 2장. 싱글턴 패턴을 사용한 유일 객체 생성하기
- 모듈-레벨 싱글턴
- 클래식 싱글턴
- 보그 싱글턴
- 파이썬 구현
- 요약
- 3장. 객체 생성 팩토리 만들기
- 팩토리 메소드
- 팩토리 메소드 패턴의 장점
- 팩토리 메소드 구현
- 추상 팩토리
- 추상 팩토리 패턴의 장점
- 추상 팩토리 구현
- 추상 팩토리와 팩토리 메소드
- 요약
- 팩토리 메소드
- 4장. 퍼사드 디자인 패턴
- 퍼사드 디자인 패턴
- 퍼사드 패턴이 해결하는 문제
- 퍼사드 디자인 패턴의 장점
- 파이썬 표준 라이브러리의 퍼사드
- 파이썬 구현
- 요약
- 퍼사드 디자인 패턴
- 5장. 프록시와 옵저버 패턴으로 객체 간 통신하기
- 프록시 디자인 패턴
- 프록시 패턴이 해결하는 문제
- 프록시 패턴의 사용
- 프록시 패턴의 장점과 단점
- 파이썬 구현
- 옵저버 디자인 패턴
- 옵저버 패턴이 해결하는 문제
- 옵저버 패턴 사용
- 옵저버 패턴의 장점
- 파이썬 구현
- 요약
- 프록시 디자인 패턴
- 6장. 커맨드 패턴으로 호출 캡슐화하기
- 커맨드 패턴 용어
- 커맨드 디자인 패턴의 사용 예
- 커맨드 디자인 패턴의 장단점
- 파이썬 구현
- 요약
- 7장. 템플릿 메소드로 알고리즘 재정의하기
- 템플릿 메소드 디자인 패턴
- 템플릿 메소드 디자인 패턴의 장점
- 후크 사용
- 파이썬 구현
- 요약
- 템플릿 메소드 디자인 패턴