간편결제, 신용카드 청구할인
삼성카드 6% (12,690원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (12,830원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (9,450원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (10,800원)
(최대할인 4만원 / 2만원 이상 결제)
Close

파이썬 디자인 패턴 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
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 270
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

15,000원

  • 13,500 (10%할인)

    750P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서(6)

    • 사은품(5)

    책소개

    디자인 패턴을 사용해 소프트웨어 설계 문제 해결하기

    소프트웨어의 유지보수와 확장성을 생각한다면 설계 단계에서 디자인 패턴은 최선의 해결책이다. 이 책에서는 파이썬을 기반으로 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장. 안티 패턴
    안티 패턴 개요
    소프트웨어 개발 안티 패턴
    -스파게티 코드
    -황금 망치
    -용암류
    -복사-붙여넣기 또는 잘라내기-붙여넣기 프로그래밍
    소프트웨어 설계 안티 패턴
    -시간 낭비
    -제품/기술 종속
    -다수 디자인
    정리

    본문중에서

    디자인 패턴은 소프트웨어 설계의 효율성을 높이는 최선의 해결책 중 하나다. 소프트웨어 최적화에 대한 관심이 높아지면서 소프트웨어 아키텍트는 객체 생성과 코드 구조, 객체 간의 상호작용 등을 반드시 설계 단계부터 생각해야 한다. 디자인 패턴을 잘 활용하면 소프트웨어 유지보수 비용이 줄어들고 코드 재사용성이 증가하며 쉽게 확장할 수 있는 구조가 될 것이다. 재사용할 수 있는 모듈 간 독립적인 프레임워크를 제공하는 것이 현대 소프트웨어 개발의 핵심이다.
    ('지은이의 말' 중에서)

    소프트웨어를 설계하는 일은 어지간히 복잡한 일이 아니다. 규모가 작든 크든 어떤 언어를 사용할 것인지 또 주어진 예산 안에서 어떤 솔루션을 사용할 것인지 등에 대한 충분한 조사가 필요하다. 하지만 프로그램의 목적과 기능이 같아도 허용된 인프라 및 개발 기간 그리고 사용자 등 여러 상황에 따라 언어와 구조가 모두 완전히 바뀔 수 있다. 따라서 소프트웨어 설계는 해답이 없는 문제이며 최적화와 쉬운 유지보수를 이룰 수 있는 답을 찾아가는 힘든 모험이다. 하지만 해답이 없다고 해서 제각기 생각한 방식대로 설계해버리면 설계자 본인도 이해할 수 없는 무시무시한 결과물이 나올 것이다. 이런 경우 자신보다 더 오랜 시간 비슷한 문제에 대해 고민했던 다른 학자나 개발자들의 노하우와 해결책을 참고하는 것이 해답이다. 여태까지 아무도 생각하지 못한 엄청난 구조가 아닌 이상 보편적인 답은 반드시 있다. 디자인 패턴은 소프트웨어 설계 과정에서 자주 발생하는 문제와 의문들을 분류해 각 목적에 최적화된 코드 구조를 정립한 개념이자 해결책이다.
    GoF(Gang of Four)가 제시한 디자인 패턴이라는 개념을 처음 접하면 그 목적과 의도를 파악하기가 힘들 수도 있다. 정작 가장 중요한 기반 알고리즘과 기술은 뒷전으로 한 불필요한 소리 같기도 하다. 또 수많은 소프트웨어 구조를 몇 가지 형태로 분류하는 것도 다소 무책임해 보인다. 하지만 디자인 패턴의 목적은 단순하다. 수많은 구조를 몇 가지 형태로 패턴화해 프로그램 간 재사용할 수 있는 코드를 작성하고 유지보수를 쉽게 하는 것이다. 누군가 맘대로 작성한 코드보다 특정 디자인 패턴을 기반으로 작성한 코드가 당연히 더 이해하기 쉽다. 해당 패턴만 숙지한다면 프로그램 구조를 빠르게 이해할 수 있다. 나아가 설계 문서에 들어갈 내용도 줄어들고 패턴에 대한 수많은 사용 예제 및 정보가 있으므로 유지보수 및 확장이 쉽다. 이처럼 장점만 있는 디자인 패턴을 마다할 이유가 전혀 없다. 물론 아주 간단한 프로그램까지 굳이 디자인 패턴을 적용하는 일은 낭비다. 지나친 추상화로 인해 프로그램의 규모에 비해 구조가 너무 복잡해지는 상황은 피해야 한다.
    이 책은 GoF가 제시한 모든 디자인 패턴을 파이썬으로 작성하는 방법을 다룬다. 디자인 패턴을 이해하는 데 꼭 필요한 객체지향 개념 및 관련 프로그래밍 이론까지 겸비했다. 디자인 패턴은 언어에 종속적인 부분이 있기 때문에 해당 언어에 대한 충분한 이해는 필수다. 이제는 파이썬은 쓰이지 않는 분야를 찾아보기 힘들 정도로 꼭 필요한 언어가 됐기 때문에 개발자라면 파이썬 기반 디자인 패턴은 한번쯤은 숙지해야 한다. 더 나은 소프트웨어 설계와 생산성 높은 코드를 작성하는 데 이 책이 많은 도움이 되길 바란다.
    ('옮긴이의 말' 중에서)

    저자소개

    체탄 기리다(Chetan Giridhar) [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 2종
    판매수 96권

    기술 리더이자 오픈소스 에반젤리스트(evangelist)다. 『Learning Python Design Patterns - Second Edition』(Packt, 2016)의 저자고 국제 PyCon 컨퍼런스의 초청 연사이자 「Python Papers」 저널의 부편집장이기도 하다. 플랫폼 엔지니어링, 분산 시스템, 모바일 앱 개발 및 실시간 클라우드 애플리케이션에 관심이 있으며, 그의 실험은 https://github.com/cjgiridhar와 그의 웹사이트 https://technobeans.com에서 살펴볼 수 있다.
    현재는 CallHub의 CTO(chief technology officer)로서 제품 전략 및 기술 전략을 담당한다. CallHub 이전에는 클라우드, 비디오, 엔터프라

    펼쳐보기

    저자의 다른책

    전체보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    위스콘신 메디슨 주립 대학교와 서울대학교에서 컴퓨터 공학 학사와 석사 학위를 취득했다. 데이터베이스에 관심이 많은 풀스택 개발자다. [그들은 어떻게 최고의 정치학자가 되었나](후마니타스, 2012) 번역에 참여했다.

    역자의 다른책

    전체보기

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용