장바구니 담기 close

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

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

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

  • 스티븐 로트
  • |
  • 에이콘출판
  • |
  • 2017-02-17 출간
  • |
  • 792페이지
  • |
  • 188 X 235 X 41 mm
  • |
  • ISBN 9788960779754
★★★★★ 평점(10/10) | 리뷰(1)
판매가

45,000원

즉시할인가

40,500

배송비

무료배송

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

수량
+ -
총주문금액
40,500

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

출판사서평

★ 이 책에서 다루는 내용 ★

■ __init__() 메소드의 다양한 디자인 패턴 이해
■ 파이썬3 추상 기반 클래스의 기본 기능과 이를 애플리케이션에서 사용하는 방법
■ with문을 활용해 콜러블 객체와 컨텍스트 매니저 디자인
■ JSON, YAML, Pickle, CSV, XML과 같은 형태로 객체 직렬화 수행
■ 정교한 로컬 데이터베이스로서 셸브 모듈 활용
■ 내장 SQLite 모듈을 사용해 파이썬 객체를 SQL 데이터베이스와 맵핑
■ RESTful 웹 서비스로 파이썬 객체 전송
■ doctest와 unittest.mock 모듈의 사용법을 포함해 자동 단위 테스트 전략을 고안
■ 커맨드 라인 인자를 파싱해 설정 파일과 환경 변수에 통합

★ 이 책의 대상 독자 ★

이 책은 고급 파이썬을 다루기 때문에 파이썬 3에 익숙해야 한다. 상당히 크거나 복잡한 문제를 해결해야 할 때 도움을 받을 수 있다.
다른 언어에 숙련된 프로그래머라면 언어를 파이썬으로 변경할 때 도움을 받을 수 있다. 이 책은 문법이나 기타 기본적인 개념은 소개하지 않는다.
고급 파이썬 2 프로그래머는 파이썬 3로 변경할 때 도움을 받을 수 있다. (버전 2에서 3로 옮기는 등의) 전환 유틸리티나 (six처럼) 병립하는 라이브러리는 다루지 않는다. 이 책은 전적으로 파이썬 3에서만 볼 수 있는 새로운 개발에 집중한다.

★ 이 책의 구성 ★

0장, ‘준비’에서는 단위 테스트와 doctest, docstring, 스페셜 메소드명과 같이 미리 알아야 할 주제를 다룬다.

1부, ‘스페셜 메소드를 통한 파이썬 다운 클래스’에서는 애플리케이션의 클래스 정의를 파이썬의 내장 기능에 맞게 통합하는 방법과 객체지향 프로그래밍 기법을 자세히 살펴본다. 1부는 다음과 같이 총 9개의 장으로 구성된다.
1장, ‘_init_() 메소드’에서는 _init_() 메소드의 상세한 설명과 구현을 제공한다. 단순 객체를 위한 다양한 유형의 초기화를 살펴본다. 이를 기반으로 컬렉션과 컨테이너를 포함하는 좀 더 복잡한 객체도 알아본다.
2장, ‘파이썬과 매끄러운 통합: 기초 스페셜 메소드’에서는 간단한 클래스 정의를 확장해 스페셜 메소드를 추가하는 방법을 상세히 설명한다. 무엇을 오버라이드해야 하고 언제 실제로 필요한지 알려면 객체로부터 상속받은 기본 동작 방식을 알아야 한다.
3장, ‘속성 접근과 프로퍼티, 디스크립터’에서는 기본 처리가 어떻게 동작하는지 자세히 살펴본다. 언제 어디서 기본 동작을 오버라이드할지 정해야 한다. 또한 디스크립터를 분석하고, 파이썬의 내부 동작 방식을 훨씬 더 깊이 이해해야 한다.
4장, ‘일관적인 디자인의 ABC’에서는 collections.abc 모듈에 들어 있는 추상 기반 클래스를 전반적으로 살펴본다. 수정하거나 확장할 다양한 컨테이너와 컬렉션의 일반적인 개념을 알아본다. 이와 비슷하게 구현할 숫자의 개념도 알아본다.
5장, ‘콜러블과 컨텍스트 사용’에서는 contextlib에 있는 도구를 사용해 컨텍스트 매니저를 생성하는 방법을 알아본다. 콜러블 객체의 수많은 변형 디자인을 선보인다. 이를 통해 상태 기반 콜러블 객체가 단순한 함수보다 더 유용한 이유를 알아본다. 바로 뛰어들어 사용자만의 컨텍스트 매니저를 작성하기 전에 먼저 기존 파이썬 컨텍스트 매니저를 사용하는 방법을 알아본다.
6장, ‘컨테이너와 컬렉션 생성’에서는 컨테이너 클래스의 기초를 설명한다. 컨테이너로 만든 후 컨테이너가 제공하는 다양한 기능을 제공할 수 있는 다양한 스페셜 메소드를 복습한다. 내장 컨테이너를 확장해 기능을 추가하는 방법도 알아본다. 또한 내장 컨테이너를 래핑하고 래퍼를 통해 메소드를 하위 컨테이너에 위임하는 방법도 살펴본다.
7장, ‘수 생성’에서는 +, -, *, /, //, %, ** 같은 필수 산술 연산자를 다룬다. 또한 <, >, <=, >=, ==, != 같은 비교 연산자도 알아본다. 새로운 수를 확장하거나 생성하는 디자인 고려 사항을 요약하며 끝낸다.
8장, ‘장식자와 믹스인: 횡단 관점’에서는 간단한 함수 장식자와 매개변수를 갖는 함수 장식자, 클래스 장식자, 메소드 장식자를 다룬다.

2부, ‘지속성과 직렬화’에서는 영속 객체를 다룬다. 영속 객체는 저장소 매체에 직렬화된다. 주로 JSON으로 변환해 파일 시스템에 사용한다. ORM 계층은 객체를 데이터베이스에 저장할 수 있다. 2부에서는 지속성을 다루는 여러 대안을 살펴보며, 다음과 같은 5개의 장으로 구성된다.
9장, ‘직렬화와 저장: JSON, YAML, Pickle, CSV, XML’에서는 JSON과 YAML, pickle, XML, CSV 같은 다양한 데이터 표현에 초점을 맞춘 라이브러리를 사용해 간단한 지속성을 다룬다.
10장. ‘셸브를 통한 객체 저장과 추출’에서는 shelve와 dbm 같은 파이썬 모듈로 기초적인 데이터베이스 연산을 설명한다.
11장, ‘SQLite를 통한 객체 저장과 추출’에서는 SQL과 관계형 데이터베이스라는 좀 더 복잡한 세계로 이동한다. SQL의 특징은 객체지향 프로그래밍의 특징과 일치하지 않으므로 임피던스 불일치 문제가 생긴다. 일반적으로 ORM 계층을 사용해 넓은 도메인의 객체를 지속시킨다.
12장, ‘객체 전송과 공유’에서는 객체를 전송하기 위한 HTTP 프로토콜과 JSON, YAML, XML 표현을 알아본다.
13장, ‘설정 파일과 지속성’에서는 설정 파일로 파이썬 애플리케이션을 동작시키는 다양한 방법을 다룬다.

3부, ‘테스트와 디버깅, 배포, 유지 보수’에서는 데이터를 수집해 고성능 프로그램을 지원하고 디버깅하는 방법을 알아본다. 지원에 따른 혼란과 복잡도를 감소시키기 위해 가능한 한 가장 좋은 설명서를 생성하는 데 필요한 정보를 제공한다. 다음과 같은 5개의 장으로 구성된다.
14장, ‘로깅과 경고 모듈’에서는 logging과 warning 모듈을 이용해 감사와 디버그 정보를 생성하는 방법을 알아본다. 이를 통해 print() 함수를 사용하는 것보다 더 의미 있는 단계로 나아간다.
15장, ‘테스트 가능한 디자인’에서는 테스트 가능한 디자인과 unittest 및 doctest의 사용법을 다룬다.
16장, ‘커맨드라인 처리’에서는 옵션과 매개변수를 파싱하는 argparse 모듈의 사용법을 살펴본다. 한걸음 더 나아가 명령 디자인 패턴을 사용해 셸 스크립트를 작성하지 않고도 합쳐지고 확장될 수 있는 프로그램 컴포넌트를 생성한다.
17장, ‘모듈과 패키지 디자인’에서는 모듈과 패키지 디자인을 다룬다. 이러한 디자인은 좀 더 높은 수준의 고려 사항이다. 모듈 내에 연관된 클래스와 패키지 내에 연관된 모듈을 살펴본다.
18장, ‘품질과 설명서’에서는 소프트웨어가 올바르고 적절히 구현됐다는 신뢰를 쌓을 수 있는 디자인 설명서를 작성하는 방법을 다룬다.

목차

0장. 준비
__카지노 블랙잭
____게임 시작
____블랙잭 플레이어 전략
____블랙잭 시뮬레이션의 객체 디자인
__성능 측정: timeit 모듈
__테스트: unittest와 doctest
____단위 테스트와 기술 스파이크
__문서화 문자열: RST 마크업과 설명서 도구
__IDE 선택
__스페셜 메소드명
__요약

1부, 스페셜 메소드를 통한 파이썬다운 클래스
1장. __init__() 메소드
__내포된 최상위 클래스: object
__기반 클래스 객체 __init()__ 메소드
__최상위 클래스에서 __init__() 구현
__ __init__() 으로 매니페스트 상수 생성
__팩토리 함수로 __init__() 활용
____불완전한 팩토리 디자인과 모호한 else절
____elif 시퀀스를 이용한 단순화와 일관성
____매핑과 클래스 객체를 이용한 단순화
________두 병렬 매핑
________튜플 값에 매핑
________부분 함수 방식
________팩토리용 플루언트 API
__각 하위 클래스에서 __init__() 구현
__단순 복합 객체
____컬렉션 클래스 래핑
____컬렉션 클래스 확장
____추가적인 요구 사항과 또 다른 디자인
__복잡한 복합 객체
____복합 객체 초기화
__ __init()__이 필요 없는 상태가 없는 객체
__추가 클래스 정의
__다중 전략 __init__()
____좀 더 복잡한 초기화 방법
____정적 메소드 초기화
__기타 __init__() 기법
____타입 검사를 포함하는 초기화
____초기화, 캡슐화, 프라이버시
__요약

2장. 파이썬과 매끄러운 통합: 기초 스페셜 메소드
__repr__()과 __str__() 메소드
____컬렉션이 아닌 __str__()과 __repr__()
____컬렉션의 __str__()과 __repr__()
__ __format__() 메소드
____중첩 포맷 명세
____컬렉션과 포맷 명세 위임
__ __hash__() 메소드
____해시 선택
____불변 객체의 정의 상속
____불변 객체 정의 오버라이딩
____가변 객체 정의 오버라이딩
____가변 핸드로부터 불변 핸드 생성
__ __bool__() 메소드
__ __bytes__() 메소드
__비교 연산자 메소드
____비교 연산 디자인
____같은 클래스의 객체 비교 구현
____서로 다른 클래스의 객체 비교 구현
____하드 점수와 소프트 점수, 다형성
____서로 다른 클래스 비교 예제
__ __del__() 메소드
____참조 계수와 소멸
____순환 참조와 가비지 컬렉션
____순환 참조와 weakref 모듈
______del__()과 close() 메소드
__ __new__() 메소드와 불변 객체
__ __new__() 메소드와 메타클래스
____메타클래스 예제 1: 속성 정렬
____메타클래스 예제 2: 자기 참조
__요약

3장. 속성 접근과 프로퍼티, 디스크립터
__기본 속성 처리
____속성과 __init__() 메소드
__프로퍼티 생성
____즉시 계산 속성
____세터와 딜리터 프로퍼티
__스페셜 메소드로 속성 접근
______slots__을 포함하는 불변 객체 생성
____튜플 하위 클래스로서 불변 객체 생성
____즉시 계산 속성
__ __getattribute__() 메소드
__디스크립터 생성
____비데이터 디스크립터 사용
____데이터 디스크립터 사용
__요약, 디자인 고려 사항, 트레이드오프
____프로퍼티와 속성
____디스크립터로 디자인
____예고

4장. 일관적인 디자인의 ABC
__추상 기반 클래스
__기반 클래스와 다형성
__콜러블
__컨테이너와 컬렉션
__수
__기타 추상화
____반복자 추상화
____컨텍스트와 컨텍스트 매니저
__abc 모듈
__요약, 디자인 고려 사항, 트레이드오프
____예고

5장. 콜러블과 컨텍스트 사용
__ABC 콜러블로 디자인
__성능 향상
____메모이제이션이나 캐싱 사용
__functools를 사용한 메모이제이션
____콜러블 API로 단순성 추구
__복잡도와 콜러블 API
__컨텍스트 관리와 with문
____십진 컨텍스트 사용
____기타 컨텍스트
__ __enter__()와 __exit__() 메소드 정의
____예외 처리
__팩토리로서의 컨텍스트 매니저
____컨텍스트 매니저 삭제
__요약
____콜러블의 디자인 고려 사항과 트레이드오프
____컨텍스트 매니저의 디자인 고려 사항과 트레이드오프
____예고

6장. 컨테이너와 컬렉션 생성
__컬렉션의 추상 기반 클래스
__스페셜 메소드 예제
__표준 라이브러리 확장 사용
____namedtuple() 함수
____deque 클래스
____ChainMap 유스케이스
____OrderedDict 컬렉션
____defaultdict 하위 클래스
____Counter 컬렉션
__새로운 종류의 컬렉션 생성
__새로운 종류의 시퀀스 정의
____통계 리스트
____즉시 계산과 지연 계산
______getitem__(), __setitem__(), __delitem__(), 슬라이스 이용
______getitem__(), __setitem__(), __delitem__() 구현
____리스트 래핑과 위임
______iter__()로 반복자 생성
__새로운 종류의 매핑 생성
__새로운 종류의 집합 생성
____디자인 원리
____Tree 클래스 정의
____TreeNode 클래스 정의
____이진 트리 집합 실험
__요약
____디자인 고려 사항과 트레이드오프
____예고

7장. 수 생성
__수의 추상 기반 클래스
____사용할 타입 결정
____메소드 결정과 반사 연산자
__산술 연산자의 스페셜 메소드
__수 클래스 생성
____FixedPoint 초기화 정의
____FixedPoint 이항 산술 연산자 정의
____FixedPoint 단항 산술 연산자 정의
____FixedPoint 반사 연산자 구현
____FixedPoint 비교 연산자 구현
__수 해시 계산
____좀 더 유용한 반올림 디자인
__기타 스페셜 메소드 구현
__할당 연산자로 최적화
__요약
____디자인 고려 사항과 트레이드오프
____예고

8장. 장식자와 믹스인: 횡단 관점
__클래스와 의미
____함수 구성
____클래스 구성
____클래스 디자인 원리
____관점 지향 프로그래밍
__내장 장식자 사용
____표준 라이브러리 장식자 사용
__표준 라이브러리 믹스인 클래스 사용
____컨텍스트 매니저 믹스인 클래스 사용
____클래스 기능 중지
__간단한 함수 장식자 작성
____별도 로거 생성
__장식자의 매개변수
__메소드 함수 장식자 생성
__클래스 장식자 생성
__클래스에 메소드 함수 추가
__보안을 위한 장식자
__요약
____디자인 고려 사항과 트레이드오프
____예고

2부, 지속성과 직렬화
9장. 직렬화와 저장: JSON, YAML, Pickle, CSV, XML
__지속성과 클래스, 상태, 표현
____일반적인 파이썬 용어
__파일 시스템과 네트워크 고려 사항
__지속성을 지원하는 클래스 정의
____블로그와 포스트 렌더링
__JSON으로 덤프와 로드
____예제 클래스에서 JSON 지원
____맞춤형 JSON 인코딩
____맞춤형 JSON 디코딩
____보안과 eval() 이슈
____인코딩 함수 리팩토링
____날짜 문자열 표준화
____JSON을 파일에 쓰기
__YAML로 덤프와 로드
____YAML 데이터를 파일에 포매팅
____YAML 표현 확장
____보안과 안전 로드
__피클로 덤프와 로드
____안정적인 피클 처리를 위한 클래스 디자인
____보안과 전역 이슈
__CSV로 덤프와 로드
____간단한 시퀀스를 CSV로 덤프
____CSV로부터 간단한 시퀀스 로드
____컨테이너와 복잡한 클래스 처리
____CSV 파일에 다양한 행 타입 덤프와 로드
____반복자로 CSV 행 필터링
____CSV 파일에 조인 행 덤프와 로드
__XML로 덤프와 로드
____문자열 템플릿을 사용한 객체 덤프
____xml.etree.ElementTree로 객체 덤프
____XML 문서 로드
__요약
____디자인 고려 사항과 트레이드오프
____스키마 진화
____예고

10장. 셸브를 통한 객체 저장과 추출
__영속 객체 유스케이스 분석
____ACID 속성
__셸프 생성
셸프에 들어갈 객체 디자인
____객체의 키 디자인
____객체의 대리 키 생성
____간단한 키로 클래스 디자인
____컨테이너나 컬렉션의 클래스 디자인
____외래 키로 객체 참조
____복잡한 객체의 CRUD 연산 디자인
__검색, 스캔, 쿼리
__셸브의 접근 계층 디자인
____데모 스크립트 작성
__효율성을 향상시키는 색인 생성
____최상단 색인 생성
__색인 유지 보수 기능 추가
__라이트백으로 색인 업데이트
____스키마 진화
__요약
____디자인 고려 사항과 트레이드오프
____애플리케이션 소프트웨어 계층
____예고

11장. SQLite를 통한 객체 저장과 추출
__SQL 데이터베이스, 지속성, 객체
____SQL 데이터 모델: 행과 테이블
____SQL DML문을 통한 CRUD 처리
____SQL SELECT문으로 행 쿼리
____SQL 트랜잭션과 ACID 속성
____기본 키와 외래 데이터베이스 키 디자인
__SQL로 애플리케이션 데이터 처리
____순수 SQL로 클래스와 유사한 처리 구현
__파이썬 객체와 SQLite BLOB 열 매핑
__파이썬 객체와 데이터베이스 행 수동 매핑
____SQLite의 접근 계층 디자인
____컨테이너 관계 구현
__색인으로 성능 향상
__ORM 계층 추가
____ORM 친화적인 클래스 디자인
____ORM 계층으로 스키마 생성
____ORM 계층으로 객체 조작
__태그 문자열로 포스트 객체에 쿼리
__색인으로 성능 향상
____스키마 진화
__요약
____디자인 고려 사항과 트레이드오프
____매핑 대안
____키와 키 디자인
____애플리케이션 소프트웨어 계층
____예고

12장. 객체 전송과 공유
__클래스, 상태, 표현
__HTTP와 REST를 사용한 객체 전송
____REST를 통한 CRUD 연산 구현
____비CRUD 연산 구현
____REST 프로토콜과 ACID
____JSON이나 XML, YAML 표현 선택
__REST 서버 구현: WSGI와 mod_wsgi
____간단한 REST 애플리케이션과 서버 생성
____REST 클라이언트 구현
____RESTful 서비스 데모와 단위 테스트
__콜러블 클래스를 사용한 WSGI 애플리케이션
____RESTful 객체 식별자 디자인
____다중 계층 REST 서비스
____룰렛 서버 생성
____룰렛 클라이언트 생성
__안전한 REST 서비스 생성
____WSGI 인증 애플리케이션
__웹 애플리케이션 프레임워크로 REST 구현
__메시지 큐를 사용한 객체 전송
____프로세스 정의
____큐 생성과 데이터 제공
__요약
____디자인 고려 사항과 트레이드오프
____스키마 진화
____애플리케이션 소프트웨어 계층
____예고

13장. 설정 파일과 지속성
__설정 파일 유스케이스
__표현과 지속성, 상태, 사용성
____애플리케이션 설정 디자인 패턴
____객체 생성을 통한 설정
____설정 계층 구조 구현
__INI 파일에 설정 저장
__eval() 변형으로 더 많은 리터럴 처리
__PY 파일에 설정 저장
____클래스 정의를 통한 설정
____SimpleNamespace를 통한 설정
____파이썬의 exec()를 사용한 설정
__exec()을 걱정할 필요가 없는 이유
__체인맵을 사용한 기본 값과 오버라이드
__JSON이나 YAML에 설정 저장
____플랫 JSON 설정 사용
____YAML 설정 로딩
__프로퍼티 파일에 설정 저장
____프로퍼티 파일 파싱
____프로퍼티 파일 사용
__XML 파일에 설정 저장: PLIST 등
____맞춤형 XML 설정 파일
__요약
____디자인 고려 사항과 트레이드오프
____공유 설정 생성
____스키마 진화
____예고

3부, 테스트와 디버깅, 배포, 유지 보수
14장. 로깅과 경고 모듈
__기본 로그 생성
____클래스단 공유 로거 생성
____로거 설정
____로깅 시스템 가동과 중지
____로거 명명
____로거 레벨 확장
____다수의 목적지를 위한 핸들러 정의
____전달 규칙 관리
__설정 주의 사항
__제어와 디버그, 감사, 보안을 위한 특수 로깅
____디버깅 로그 생성
____감사와 보안 로그 생성
__경고 모듈 사용
____경고로 API 변경 알림
____경고로 설정 문제 알림
____경고로 가능한 소프트웨어 문제 알림
__고급 로깅: 최근 메시지와 네트워크 데스티네이션
____자동 테일 버퍼 생성
____원격 프로세스에 로깅 메시지 전송
____큐 초과 방지
__요약
____디자인 고려 사항과 트레이드오프
____예고

15장. 테스트 가능한 디자인
__테스트 단위의 정의와 분리
____종속성 최소화
____간단한 단위 테스트 생성
____테스트 스위트 생성
____에지와 코너 케이스 넣기
____테스트 종속성 모킹
____더 많은 동작을 테스트하는 목 객체 사용
__doctest를 사용한 테스트 케이스 정의
____doctest와 unittest 결합
____더욱 완전한 테스트 패키지 생성
__설정과 해제 사용
____OS 자원에 대한 설정과 해제 사용
____데이터베이스에 대한 설정과 해제 사용
__TestCase 클래스 계층 구조
__외부에서 정의한 예상 결과 사용
__자동 통합 또는 성능 테스트
__요약
____디자인 고려 사항과 트레이드오프
____예고

16장. 커맨드라인 처리
__OS 인터페이스와 커맨드라인
____인자와 옵션
__argparse로 커맨드라인 파싱
____간단한 온오프 옵션
____인자가 있는 옵션
____위치 인자
____기타 인자
____--version 표시와 종료
____--help 표시와 종료
__커맨드라인 옵션과 환경 변수 통합
____좀 더 설정 가능한 기본 값 제공
____환경 변수로 설정 파일 값 오버라이딩
____설정 파일로 환경 변수 오버라이딩
____설정에 None 값 할당
__도움말 출력 맞춤화
__최상위 main() 함수 생성
____설정의 DRY 원칙
____중첩 설정 컨텍스트 관리
__전체적 프로그래밍
____명령 클래스 디자인
____분석 명령 하위 클래스 추가
____애플리케이션 내에 기능 추가와 패키징
____상위의 복합 명령 디자인
__추가 복합 명령 디자인 패턴
__다른 애플리케이션과의 통합
__요약
____디자인 고려 사항과 트레이드오프
____예고

17장. 모듈과 패키지 디자인
__모듈 디자인
____모듈 디자인 패턴
____모듈과 클래스
____일반적인 모듈 구성
__전체적 모듈과 독립 모듈
__패키지 디자인
____모듈-패키지 하이브리드 디자인
____여러 구현을 포함하는 패키지 디자인
__메인 스크립트와 __main__ 모듈 디자인
____실행 가능한 스크립트 파일 생성
______main__ 모듈 생성
____전체 프로그래밍
__장기 실행 애플리케이션 디자인
__src와 bin, test로 코드 조직
__파이썬 모듈 설치
__요약
____디자인 고려 사항과 트레이드오프
____예고

18장. 품질과 설명서
__help() 함수에 쓰일 문서화 문자열 작성
__pydoc을 사용한 설명서
__RST 마크업을 통한 출력 개선
__텍스트 블록
__RST 인라인 마크업
__RST 디렉티브
__RST 배우기
__효과적인 문서화 문자열 작성
__모듈과 패키지를 포함하는 파일단 문서화 문자열 작성
____RST 마크업으로 상세 API 작성
____클래스와 메소드 함수의 문서화 문자열 작성
____함수 문서화 문자열 작성
__더욱 정교한 마크업 기법
__스핑크스를 사용한 설명서 생성
____스핑크스 퀵스타트 사용
____스핑크스 설명서 작성
____설명서를 위한 4+1 뷰 작성
____구현 문서 작성
____스핑크스 교차 참조 생성
____스핑크스 파일을 디렉토리로 리팩토링
__설명서 작성
__문학적 프로그래밍
____문학적 프로그래밍 유스케이스
____문학적 프로그래밍 도구 다루기
__요약
____디자인 고려 사항과 트레이드오프

저자소개

저자 스티븐 로트(Steven F. Lott)는 컴퓨터가 크고 비싸고 귀했던 70년대부터 프로그래밍을 해왔다. 계약직 소프트웨어 개발자이자 아키텍처로서 크고 작은 수백 개의 프로젝트에 참여했다. 워드프레스 공식 저장소에 현재까지 총 여덟 개의 프로젝트를 제출한 플러그인 개발자다. 10년 넘게 파이썬을 사용해 비즈니스 문제를 해결하고 있다.
현재 미국 동부 해안 곳곳을 이주하며, 인터넷 업계를 떠돌고 있다. 그의 기술 블로그는 http://slott-softwarearchitect.blogspot.com다.

도서소개

파이썬의 내장 기능을 활용해 강력한 애플리케이션을 개발하려면 객체지향 파이썬을 완벽하게 이해해야 한다. 이 책은 크게 세 가지 주제를 다룬다. 첫째, 파이썬의 내부 요소와 매끄럽게 통합되는 클래스를 생성할 수 있는 스페셜 메소드를 설명한다. 둘째, 객체를 파일이나 데이터베이스에 지속시키는 방법을 살펴본다. 끝으로 일관적인 개발과 유지 보수를 위한 테스트와 디버깅, 설명서 작성법을 다룬다. 객체지향의 관점에서 여러 디자인 패턴을 소개하고, 상세한 예제를 제공해 이해를 돕는다.

교환 및 환불안내

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