요즘 파이썬 클린코드(마리아노 아나야 지음)라는 책을 읽고 있다. 한 챕터씩, 책을 읽으며 내가 기억에 남는 점 등에 대한 정리를 해보도록 하겠다. 목차 1. 계약에 의한 디자인 2. 방어적 프로그래밍 3. 관심사의 분리 좋은 코드의 특징 중 3가지를 이번 포스팅에서 정리를 해보고자 한다. 1. 계약에 의한 디자인 계약이란, 소프트웨어 컴포넌트 간 통신 중 지켜야 할 규칙들을 말한다. 여기서 계약에 의한 디자인이란, 계약을 기반으로 코드를 디자인해야 하는 것을 말한다. 이는 런타임 오류 발생 시 코드의 어떤 부분이 계약 파손 됐는지 명확히 알 수 있도록 돕는다. 이외 장단점을 정리하면 아래와 같다. 계약에 의한 디자인의 장점 사전조건 검증, 사후조건 검증에서 실패하는 오류 발생 시 오류를 쉽게 찾음 책임..