1장. 견고한 파이썬
__견고성
____견고성이 중요한 이유
__여러분의 의도는 무엇인가?
____비동기 소통
__파이썬 코드에서 의도의 예시
____컬렉션
____반복 구문
____최소 놀람의 원칙
__마치며
2장. 파이썬 타입의 소개
__타입이란?
____기계적인 표현
____의미적 표현
__타입 시스템
____강한 스펙트럼과 약한 스펙트럼
____동적 타입과 정적 타입
____덕 타이핑
__마치며
3장. 타입 어노테이션
__타입 어노테이션이란?
__타입 어노테이션의 장점
____자동 완성
____타입 체커
____연습: 버그 찾기
__타입 어노테이션은 사용할 때
__마치며
4장. 타입의 제어
__Optional 타입
__Union 타입
____곱 타입과 합 타입
__Literal 타입
__Annotated 타입
__NewType
__Final 타입
__마치며
5장. 컬렉션 타입
__컬렉션의 어노테이션
__동종 컬렉션과 이종 컬렉션
__TypedDict
__새로운 컬렉션 생성
____제네릭
____기존 타입의 변경
____ABC처럼 쉽게
__마치며
6장. 타입 체커의 커스터마이징
__타입 체커의 설정
____mypy의 설정
____mypy 리포트
____mypy를 빠르게
__기타 타입 체커
____Pyre
____Pyright
__마치며
7장. 실용적 타입 체킹
__트레이드오프
__더 빠른 손익 분기
____취약점 찾기
____전략적으로 대상 코드를 잡아라
____도구화에 의존하기
__마치며
8장. 사용자 정의 타입: 열거형
__사용자 정의 타입
__열거형
____Enum
____사용하지 않을 때
__고급 사용법
____자동 변수
____플래그
____정수형 변환
____고유성
__마치며
9장. 사용자 정의 타입: 데이터 클래스
__데이터 클래스의 동작
__사용법
__
이 책에서 다루는 내용
◆ 개발 생태계에서의 타입의 중요성
◆ 특정 의도 반영을 위한 타입 선택
◆ 확장성 있는 파이썬 만들기
◆ 코드베이스의 견고성 및 안전성 높이기
◆ 유지보수 문제 감지를 위한 코드 평가
◆ 린팅과 테스팅을 통한 코드베이스 안전망 구축
이 책의 대상 독자
지속 가능하며 유지 가능한 방식으로 본인의 코드를 발전시키고 싶은 모든 파이썬 개발자를 위한 책이다. 파이썬 프로그래밍 경험이 있어야 하며 파이썬 입문용으로는 적합하지 않다. 파이썬의 제어 흐름과 클래스를 이해하고 있어야 한다.
이 책의 구성
이 책은 크게 4부로 구성돼 있다.
제1부, 코드에 타입 어노테이션하기
먼저 파이썬의 타입 어노테이션(type annotation을 설명한다. 타입은 모든 언어의 기초이지만 세부적으로 다뤄지지 않는 경향이 있다. 한 번 정해진 타입은 매우 구체적인 의도를 전달하기 때문에 중요하다. 타입 어노테이션과 특정 어노테이션(specific annotation이 개발자에게 어떤 내용을 전달하는지 살펴본다. 또한 타입체커(typechecker를 살펴보고 이것이 오류를 잡는 데 어떻게 도움이 되는지 알아본다.
제2부, 여러분만의 타입을 정하기
파이썬의 타입을 알아본 후 타입을 어떻게 생성하는지 살펴볼 것이다. 열거형(enumeration, 데이터 클래스 및 클래스를 자세히 다룬다. 그리고 타입 설계 방식 선택이 코드의 견고성에 미치는 영향도 알아본다.
제3부, 확장 가능한 파이썬
의도를 전달하는 법을 배운 뒤, 향후 개발자들이 강력한 기반을 바탕으로 코드를 효과적으로 변경하며 자신 있게 빌드하는 방법을 살펴본다.
제4부, 안전망의 설치
마지막으로 우리는 이후에 인수할 개발자들이 떨어져도 다치지 않을 안전망을 설치하는 방법을 알아본다. 본인의 사례에도 어려움 없이 적용할 수 있는 튼튼한 장치가 있다는 것을 알게 되면 개발자들도 자신감이 올라갈 것이다. 마지막으로 오류 발견에 도움이 되는 다양한 정적 분석 및