Top

Python Design Patterns [Python 예제 코드로 배우는 핵심 디자인 패턴]

  • 원서명Learning Python Design Patterns (ISBN 9781783283378)
  • 지은이제나디 즐로빈
  • 옮긴이정승원
  • ISBN : 9788960775350
  • 12,000원
  • 2014년 03월 21일 펴냄
  • 페이퍼백 | 120쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 프로그래밍 언어

판매처

개정판

책 소개

요약

수많은 개발자들이 작업 시의 문제를 해결하며 발전시켜온 노하우를 축적하고, 추후 재사용을 위해 이름 붙인 규약을 디자인 패턴이라 부른다. 프로그래머들이 협업하면서 디자인 패턴을 사용하면, 장황한 설명 없이 효율적으로 자신의 의사를 전달하고 불필요한 오해를 피할 수 있다. 이 책은 파이썬(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장, ‘템플릿 메소드로 알고리즘 재정의하기’는 최소한의 수정으로 여러 알고리즘의 변형을 생성하는 패턴을 설명한다.

저자/역자 소개

지은이 서문

파이썬은 매우 강력하고 간결하며 우아한 프로그래밍 언어다. 객체 지향의 핵심 기능을 모두 가지고 있고 디자인 패턴을 구현하는 데 사용할 수도 있다. 디자인 패턴은 일반적으로 발생하는 문제를 풀 때 재사용 가능한 해결책이다.

다시 말해, 프로그래머들이 작업하며 직면한 문제를 해결한 방식을 발전시켜 일반적인 패턴으로 만들어 놓은 것이다. 디자인 패턴은 알고리즘과 같이 문제를 해결하기 위해 정해진 방법이 아니라 서로 다른 상황의 문제를 해결하기 위해 문제를 설명한 것으로, 여러 가지 언어로 구현할 수 있다.

디자인 패턴은 개발 과정의 속도를 높여 주고 특정 문제를 해결하기 위해 검증된 방식을 제공한다. 당연히 검증되지 않은 방식보다는 한 번 이상 검증된 방식을 사용하면, 구현 도중 발생할지도 모르는 보이지 않는 문제를 미연에 방지할 수 있고, 개발 속도를 지연시킬 가능성이 있는 예측 불가능한 문제를 해결할 수 있다.

또한 프로그래머들 간의 커뮤니케이션 도구로도 유용하다. 예를 들어 “여기서는 옵저버(Observer) 디자인 패턴을 사용하겠다.”라고 말하면, 코드가 어떻게 동작하는지 일일이 설명하는 것보다 훨씬 명료하다.

디자인 패턴 학습은 훌륭한 개발자로 도약하기 위한 첫 번째 발판이 될 수 있다. 이 책을 통해 디자인 패턴의 세계로 빠져보자.

지은이 소개

제나디 즐로빈(Gennadiy Zlobin)

러시아의 음악 서비스업체 Zvooq.ru에서 소프트웨어 개발자이자 기술 팀장으로 일하고 있다. 지금까지 4년 이상 파이썬을 기본 언어로 사용하며 매일같이 파이썬의 강력함을 체험하고 있다. 하이로드(high-load) 소프트웨어 아키텍처와 좋은 엔지니어링 관행, 안드로이드 운영체제, 자연어 처리 등에 관심이 있다. Zvooq에서 일하기 전에는 러시아의 첫 번째 검색 엔진 Rambler에서 일했다. 이때는 항공권의 메타 검색 서비스와 Rambler의 인덱스 페이지를 연동했다.

옮긴이의 말

“그럼 NPC 매니저 클래스는 싱글턴으로 구현하는 게 좋겠어요.” 현업에서 어렵지 않게 들을 수 있는 대화입니다. 이때 싱글턴 디자인 패턴을 모르는 개발자는 상대방의 의도를 단번에 파악하지 못하고 질문을 하거나 회의가 끝난 후 그게 무엇인지 검색을 해야만 합니다. 이렇듯 파이썬은 개발자의 의사소통 도구로 매우 유용합니다. 자신이 구상하고 있는 모습을 장황하게 설명하지 않고 단 한 단어만으로 깔끔하게 상대방을 이해시킬 수 있습니다. 적어도 내가 아는 싱글턴과 상대방이 아는 싱글턴이 일치할 때 가능한 이야기입니다.

그것뿐일까요? 개발을 하다 보면 나와 동일한 고민을 했던 문제에 봉착하는 경우가 매우 많습니다. 그래서 구글이나 스택 오버플로우(Stack Overflow)와 같은 사이트를 얼마나 자유자재로 사용할 수 있는지도 개발자의 역량 중 하나라 할 수 있습니다.

말이 조금 헛나갔는데요. 이미 수많은 개발자들이 동일한 문제를 고민하고 그에 대해 검증된 해결 방안을 ‘디자인 패턴’의 형태로 완성시켜 놓은 것이 많이 있습니다. 우리는 그 지식에 기대어 한층 빠르고 쉽게, 그리고 안전하게 문제를 해결할 수 있습니다.

이 책에서는 디자인 패턴을 설명하기 위한 도구로 파이썬이라는 언어를 선택했습니다. 개인적으로 머리 속에 있는 생각을 코드로 옮기기에 가장 용이하다고 느끼는 언어입니다. 이 책을 통해 파이썬과 디자인 패턴이라는 흥미로운 주제를 자신의 것으로 만드는 즐거운 시간이 되길 바랍니다.
정승원

옮긴이 소개

정승원

LG전자 미디어 연구소를 거쳐 현재 2K Sports에서 소프트웨어 엔지니어로 일하고 있다. 번역서로는 『The Python Standard Library by Example』(2012, 에이콘출판), 『아이폰 위치 기반 애플리케이션 개발』(2013, 에이콘출판), 『Python Cookbook』(2014, 인피니티북스)이 있다.

목차

목차
  • 1장. 모델-뷰-컨트롤러
    • 모델: 애플리케이션의 지식
    • 뷰: 지식의 표현
    • 컨트롤러: 모델과 뷰의 연결고리
    • MVC 사용의 장점
    • 파이썬 구현
    • 요약

  • 2장. 싱글턴 패턴을 사용한 유일 객체 생성하기
    • 모듈-레벨 싱글턴
    • 클래식 싱글턴
    • 보그 싱글턴
    • 파이썬 구현
    • 요약

  • 3장. 객체 생성 팩토리 만들기
    • 팩토리 메소드
      • 팩토리 메소드 패턴의 장점
      • 팩토리 메소드 구현
    • 추상 팩토리
      • 추상 팩토리 패턴의 장점
      • 추상 팩토리 구현
    • 추상 팩토리와 팩토리 메소드
    • 요약

  • 4장. 퍼사드 디자인 패턴
    • 퍼사드 디자인 패턴
      • 퍼사드 패턴이 해결하는 문제
      • 퍼사드 디자인 패턴의 장점
      • 파이썬 표준 라이브러리의 퍼사드
      • 파이썬 구현
    • 요약

  • 5장. 프록시와 옵저버 패턴으로 객체 간 통신하기
    • 프록시 디자인 패턴
      • 프록시 패턴이 해결하는 문제
      • 프록시 패턴의 사용
      • 프록시 패턴의 장점과 단점
      • 파이썬 구현
    • 옵저버 디자인 패턴
      • 옵저버 패턴이 해결하는 문제
      • 옵저버 패턴 사용
      • 옵저버 패턴의 장점
      • 파이썬 구현
    • 요약

  • 6장. 커맨드 패턴으로 호출 캡슐화하기
    • 커맨드 패턴 용어
    • 커맨드 디자인 패턴의 사용 예
    • 커맨드 디자인 패턴의 장단점
    • 파이썬 구현
    • 요약

  • 7장. 템플릿 메소드로 알고리즘 재정의하기
    • 템플릿 메소드 디자인 패턴
      • 템플릿 메소드 디자인 패턴의 장점
      • 후크 사용
    • 파이썬 구현
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안