장바구니 담기 close

장바구니에 상품을 담았습니다.

파이썬 객체지향 프로그래밍 4/e

파이썬 객체지향 프로그래밍 4/e

  • 스티븐로트 ,더스티필립스
  • |
  • 에이콘출판
  • |
  • 2022-06-30 출간
  • |
  • 824페이지
  • |
  • 188 X 235 X 38 mm
  • |
  • ISBN 9791161756547
판매가

43,000원

즉시할인가

38,700

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
38,700

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




◈ 이 책에서 다루는 내용 ◈

◆ 클래스 생성 및 메서드 정의를 통한 파이썬 객체 구현
◆ 상속을 사용한 클래스 기능 확장
◆ 예외를 사용한 비정상적인 상황 처리
◆ 객체지향 기능을 사용해야 할 때와 사용하지 말아야 할 때에 대한 이해
◆ 널리 사용되는 몇 가지 디자인 패턴과 구현
◆ 단위 및 통합 테스트의 단순성 발견 및 테스트의 중요성
◆ 동적 코드에 대한 정적 타입 체크 방법
◆ asyncio를 이용한 동시성 프로그래밍 및 프로그램 속도 향상 방법

◈ 이 책의 대상 독자 ◈

이 책은 파이썬의 객체지향 프로그래밍을 처음 접하는 독자를 대상으로 한다. 파이썬에 대한 기초 지식이 있다고 가정한다. 다른 객체지향 프로그래밍 언어에 대한 배경 지식이 있는 독자를 위해 파이썬의 접근 방식이 갖는 독특한 특징을 설명할 것이다.
데이터 과학 및 데이터 분석에서 파이썬을 많이 사용하기 때문에 관련 수학과 통계 개념도 다룬다. 이 분야의 지식은 개념을 보다 구체적으로 적용하는 데 도움이 될 수 있다.

◈ 이 책의 구성 ◈

이 책은 전체적으로 네 부분으로 구성돼 있다. 처음 여섯 개의 장은 객체지향 프로그래밍의 핵심 원리와 개념을 설명하며 파이썬에서 이 개념들이 어떻게 구현되는지를 설명한다. 다음 세 개의 장에서는 객체지향 프로그래밍의 렌즈를 통해 파이썬 내장 기능을 자세히 살펴본다. 10장, 11장, 12장에서는 여러 가지 디자인 패턴과 이것을 파이썬에서 처리하는 방법을 살펴본다. 마지막 부분에서는 테스트와 동시성을 다룬다.

1장 ‘객체지향 디자인’에서는 객체지향 디자인의 기초가 되는 핵심 개념을 소개한다. 상태와 동작, 속성과 메서드, 객체를 클래스로 그룹화하는 방법 등에 대한 아이디어를 통해 로드맵을 제공한다. 캡슐화, 상속 및 구성 관계도 살펴볼 것이다. 사례 연구에서는 k-최근접 이웃(k-NN, k-Nearest Neighbors) 분류기를 구현하는 머신러닝 문제를 소개한다.
2장 ‘파이썬의 객체’에서는 파이썬에서 클래스 정의가 어떻게 동작하는지 보여준다. 여기에는 타입 힌트(type hints)라고 불리는 타입 주석(type annotations), 클래스 정의, 모듈, 패키지 등이 포함된다. 클래스 정의 및 캡슐화에 대한 실무적인 고려사항을 알려준다. 사례 연구에서는 k-NN 분류기의 일부 클래스를 구현해본다.
3장 ‘객체가 유사한 경우’에서는 클래스들이 서로 어떻게 연관돼 있는지 설명한다. 여기에는 상속 및 다중 상속의 사용법이 포함된다. 클래스 계층 구조에서 클래스 간의 다형성 개념을 살펴볼 것이다. 사례 연구에서는 가장 가까운 이웃을 찾는 데 사용되는 거리 계산을 위한 몇 가지 디자인을 살펴볼 것이다.
4장, ‘예상치 못한 상황을 예상하기’에서는 파이썬의 예외와 예외 처리에 대해 자세히 살펴본다. 내장 예외의 계층 구조도 다룬다. 또한 고유한 문제 도메인이나 애플리케이션을 반영하기 위해 고유한 예외를 정의하는 방법도 살펴볼 것이다. 사례 연구에서는 데이터 유효성 검사에 예외를 적용한다.
5장 ‘객체지향 프로그래밍의 사용 시기’에서는 디자인 기법에 대해 더 깊이 있게 다룬다. 이 장에서는 파이썬에서 프로퍼티(property)를 사용해 속성(attribute)을 구현하는 방법을 살펴볼 것이다. 또한 객체들의 컬렉션을 다루기 위한 관리자 객체의 일반적인 개념을 살펴본다. 사례 연구에서는 이런 아이디어를 적용해 k-NN 분류기를 폭넓게 구현한다.
6장 ‘추상 기본 클래스와 연산자 오버로딩’에서는 추상화에 대한 개념과 파이썬이 추상 기본 클래스를 지원하는 방법에 대해 깊이 있게 다룬다. 여기에는 공식적인 Protocol 정의 메소드와 덕 타이핑(duck typing)을 비교하는 것이 포함된다. 또한 파이썬의 내장 연산자를 오버로드하는 기법도 포함된다. 메타클래스와 이를 사용해 클래스 구조를 수정하는 방법도 살펴볼 것이다. 사례 연구에서는 추상화를 조심스럽게 사용해 디자인을 단순화하는 방법을 보여주기 위해 기존 클래스 중 일부를 재정의할 것이다.
7장, ‘파이썬 데이터 구조’에서는 다양한 파이썬 내장 컬렉션을 살펴볼 것이다. 이 장에서는 튜플, 딕셔너리, 리스트, 집합 등을 다룬다. 또한 데이터클래스와 명명된 튜플이 클래스의 여러 공통 기능을 제공함으로써 어떻게 디자인을 단순화 할 수 있는지 살펴본다. 사례 연구에서는 이런 새로운 기술을 사용하기 위해 이전의 일부 클래스 정의를 수정할 것이다.
8장 ‘객체지향과 함수형 프로그래밍의 교차점’에서는 클래스 정의가 아닌 파이썬 구조체(construct)를 살펴본다. 파이썬의 모든 것이 객체지향적이지만 함수 정의를 사용하면 클래스 정의의 복잡성을 피해 호출 가능한 객체를 생성할 수 있다. 또한 파이썬의 컨텍스트 관리자 구조체와 with 문을 살펴볼 것이다. 사례 연구에서는 클래스 복잡성을 피하는 대안적인 디자인을 살펴볼 것이다.
9장 ‘문자열, 직렬화, 파일 경로’에서는 객체를 문자열로 직렬화하는 방법과 문자열을 파싱해 객체를 생성하는 방법을 다룬다. 여기서는 Pickle, JSON, CSV 등을 포함한 여러 형식을 살펴볼 것이다. 사례 연구에서는 k-NN 분류기가 샘플 데이터를 로드하고 처리하는 방법을 다시 살펴본다.
10장 ‘이터레이터 패턴’에서는 반복 처리에 대한 파이썬의 보편적인 개념을 설명한다. 모든 내장 컬렉션은 반복 가능하며, 이 디자인 패턴은 파이썬 동작에서 핵심을 차지한다. 파이썬의 컴프리헨션(comprehension)과 제너레이터(generator) 함수도 살펴볼 것이다. 사례 연구에서는 제너레이터 표현식과 리스트 컴프리헨션을 사용해 학습 및 테스트 샘플을 분할하는 이전 디자인을 다시 살펴본다.
11장 ‘일반 디자인 패턴’에서는 몇 가지 일반적인 객체지향 디자인을 살펴본다. 여기에는 데코레이터(Decorator), 옵저버(Observer), 전략(Strategy), 커맨드(Command), 상태(State), 싱글톤(Singleton) 디자인 패턴이 포함된다.
12장 ‘고급 디자인 패턴’에서는 좀 더 발전된 객체지향 디자인을 살펴본다. 여기에는 어댑터(Adapter), 퍼사드(Fa?ade), 플라이웨이트(Flyweight), 추상 팩토리(Abstract Factory), 컴포짓(Composite), 템플릿(Template) 패턴이 포함된다.
13장 ‘객체지향 프로그램 테스트’에서는 unittest와 pytest를 사용해 파이썬 애플리케이션을 위한 자동화된 단위 테스트 스위트를 제공하는 방법을 보여준다. 이를 통해 모의 객체를 사용해 테스트할 때 단위를 분리하는 것과 같은 고급 테스트 기법을 살펴볼 수 있다. 사례 연구에서는 3장에서 다뤘던 거리 계산에 대해서 테스트 케이스를 작성하는 것을 보여준다.
14장 ‘동시성’에서는 멀티코어 및 멀티프로세서 컴퓨터 시스템을 사용해 신속하게 계산을 수행하고 외부 이벤트에 응답하는 소프트웨어를 작성하는 방법을 살펴본다. 스레드와 멀티프로세싱뿐만 아니라 파이썬의 asyncio 모듈도 살펴볼 것이다. 사례 연구에서는 k-NN 모델에서 하이퍼파라미터 튜닝을 수행하기 위해 이런 기술을 사용하는 방법을 보여줄 것이다.

◈ 옮긴이의 말 ◈

이 책은 파이썬에서 객체지향 디자인을 활용해 견고하고 유지보수가 쉬운 애플리케이션을 개발하는 데 중점을 두고 설명한다. 모든 장에 걸쳐 있는 사례 연구는 아이리스 꽃 분류를 위한 머신러닝 애플리케이션을 개발하는 실제 프로젝트를 다루고 있어서 전체적인 맥락에서 각 주제를 일관성 있게 이해할 수 있도록 구성돼 있는 것이 장점이다. 또한 UML 다이어그램을 통해 디자인 패턴과 코드를 통합적으로 다루고 있는 것도 장점이다.
파이썬 3.5부터 타입 힌트가 도입됐지만 실무에서는 잘 사용되지 않았다. 하지만 이 책을 통해 타입 힌트를 사용하면 타입 힌트가 지속적인 유지보수에 얼마나 큰 기여를 하는지 알게 될 것이다. 유사한 기능을 가진 객체들에 대해 상속이나 구성 관계를 사용하는 방법과 파이썬의 편리한 특징 중 하나인 덕 타이핑(duck typing)의 유용함을 배울 수 있다.
객체지향을 사용해야 할 때가 언제인지, 그리고 사용하지 말아야 할 때가 언제인지를 다루는 부분은 이 책의 핵심 중 하나이다. 이 책의 가장 중요한 부분은 널리 사용되는 12가지 디자인 패턴과 이 패턴을 파이썬에서 구현하는 방법을 다루는 부분이라고 할 수 있다. 파이썬이 다른 언어에 비해 객체지향 디자인을 더 쉽고 우아하게 적용할 수 있다는 것을 알게 될 것이다.
객체지향 프로그래밍과 함수형 프로그래밍이 어떻게 다르고 어떤 부분에서 서로 만나는지 다루고 있는 부분은 매우 흥미롭다. 이 주제를 잘 이해하면 클래스의 복잡성으로 피할 수 있는 대안적인 디자인을 도입하는 데 도움이 될 것이다. 또 한 가지, 파이썬의 컴프리헨션(comprehension)과 제너레이터(generator) 함수는 코드를 단순화할 수 있는 훌륭한 방법이다. 파이썬의 내장 컬렉션이 얼마나 효율적인 도구인지 다시 한번 이해하게 될 것이다.
마지막으로 unittest와 pytest를 사용해 파이썬 애플리케이션을 위한 자동화된 단위 테스트 스위트를 제공하는 방법을 보여준다. 이렇게 자동화된 테스트를 사용하면 개발 프로젝트에서 상당히 많은 부하를 줄일 수 있다. 독자들도 파이썬의 자동화된 테스트에 익숙해지기를 바란다.
이 책은 파이썬이 얼마나 훌륭하고 사용하기 편한 개발 언어인지 잘 보여준다. 이 책에서 배운 기술을 활용해 파이썬 개발 프로젝트에서 많은 성과를 얻을 수 있을 것이다.


목차


1장. 객체지향 디자인
2장. 파이썬의 객체
3장. 객체가 유사한 경우
4장. 예상치 못한 상황을 예상하기
5장. 객체지향 프로그래밍의 사용 시기
6장. 추상 기본 클래스와 연산자 오버로딩
7장. 파이썬 데이터 구조
8장. 객체지향과 함수형 프로그래밍의 교차점
9장. 문자열, 직렬화, 파일 경로
10장. 이터레이터 패턴
11장. 일반 디자인 패턴
12장. 고급 디자인 패턴
13장. 객체지향 프로그램 테스트
14장. 동시성

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.