본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

파이썬 클린코드 상세페이지

컴퓨터/IT 개발/프로그래밍

파이썬 클린코드

유지보수가 쉬운 파이썬 코드를 만드는 비결

소장종이책 정가28,000
전자책 정가29%20,000
판매가20,000
파이썬 클린코드

작품 소개

<파이썬 클린코드>

견고하면서도 확장성이 뛰어난 파이썬 코드를 만드는 비법

파이썬은 누구나 쉽게 시작할 수 있는 프로그래밍 언어이다. 그러나 이 책에서 소개하는 다음 내용을 제대로 숙지하지 않고 개발을 하다보면 더 이상은 수정이 불가능한 코드를 마주하게 된다. 어디서부터 무엇이 잘못된 걸까? 이 책을 통해 파이썬의 철학을 따르는 파이썬스러운 클린 코드를 작성하는 방법에 대해 알아보자.

* 클린 코드란 무엇인가?
* 파이썬스러운(pythonic) 코드란 무엇인가?
* 파이썬에서 밑줄의 의미
* yield와 return의 차이
* 이터러블과 이터레이터, 제너레이터의 차이
* 코루틴을 사용한 비동기 프로그래밍
* LBYL - 코드 실행 전에 문제를 검사해야 할까? 아니면 EAFP - 일단 실행 후 발생한 예외를 잡아야 할까?
* SOLID 원칙을 따르는 견고하고 확장성이 뛰어난 객체 만들기
* 파이썬의 덕 타이핑 (Duck Typing)
* 데코레이터를 사용해 내 맘대로 객체 꾸미기
* 데이터 디스크립터와 비데이터 디스크립터의 차이
* 파이썬에서도 GoF의 디자인 패턴을 사용해야 할까?
* 몽키 패치는 왜 몽키 패치라 할까?
* "소프트웨어 공학의 사실과 오류" 부터 "성당과 시장"에 이르는 고서의 인사이트 엿보기

이 책의 대상 독자
이 책은 소프트웨어 디자인에 관심이 있거나 파이썬에 대해 보다 자세히 알고 싶은 모든 개발 실무자에게 적합하다.

파이썬의 관점에서만 보면 이 책은 모든 수준에 개발자에게 적합하다. 각 장의 내용은 점점 복잡해지는 구조이기 때문에 차례로 학습하기에 좋다. 숙련된 개발자에게도 도움이 된다. 데코레이터, 디스크립터와 비동기 프로그래밍 같은 파이썬 고급 주제를 다룬다. 일부 주제는 언어 내부의 동작 원리부터 분석하기 때문에 파이썬을 좀 더 깊이 이해하는데 도움이 될 것이다.


출판사 서평

이 책의 대상 독자
이 책은 소프트웨어 디자인에 관심이 있거나 파이썬에 대해 보다 자세히 알고 싶은 모든 개발 실무자에게 적합하다.

파이썬의 관점에서만 보면 이 책은 모든 수준에 개발자에게 적합하다. 각 장의 내용은 점점 복잡해지는 구조이기 때문에 차례로 학습하기에 좋다. 숙련된 개발자에게도 도움이 된다. 데코레이터, 디스크립터와 비동기 프로그래밍 같은 파이썬 고급 주제를 다룬다. 일부 주제는 언어 내부의 동작 원리부터 분석하기 때문에 파이썬을 좀 더 깊이 이해하는데 도움이 될 것이다.


저자 소개

마리아노 아나야
마리아노 아나야는 파이썬으로 소프트웨어를 만들고 동료 프로그래머를 가르치는데 대부분의 시간을 보낸 소프트웨어 엔지니어이다. 파이썬 외에는 소프트웨어 아키텍처, 함수형 프로그래밍(functional programming), 분산 시스템과 컨퍼런스 발표에 관심을 가지고 있다.

Euro Python 2016과 2017에서 연사로 활동했다. 저자에 대해 더 자세히 알기 원한다면 GitHub에서 rmariano 계정으로 검색할 수 있다.

2021년에는 이 책의 개정판을 출간하였다.

발표 자료를 공유하는 http://speakerdeck.com 사이트의 사용자 이름은 rmariano이다.

목차

chapter 1 소개, 코드 포매팅과 도구

클린 코드의 의미
클린 코드의 중요성
클린 코드에서 코드 포매팅의 역할
프로젝트 코딩 스타일 가이드 준수
Docstring과 어노테이션
Docstring
어노테이션
어노테이션은 docstring을 대체하는 것일까?
기본 품질 향상을 위한 도구 설정
요약

chapter 2 파이썬스러운(pythonic) 코드

인덱스와 슬라이스
자체 시퀀스 생성
컨텍스트 관리자(context manager)
컨텍스트 관리자 구현
프로퍼티, 속성과 객체 메서드의 다른 타입들
파이썬에서의 밑줄
프로퍼티
이터러블 객체
이터러블 객체 만들기
시퀀스 만들기
컨테이너 객체
객체의 동적인 속성
호출형(callable) 객체
매직 메서드 요약
파이썬에서 유의할 점
변경 가능한(mutable) 파라미터의 기본 값
내장(built-in) 타입 확장
요약
참고 자료

chapter 3 좋은 코드의 일반적인 특징

계약에 의한 디자인
사전조건(precondition)
사후조건(postcondition)
파이썬스러운 계약
계약에 의한 디자인(DbC) - 결론
방어적(defensive) 프로그래밍
에러 핸들링
파이썬에서 어설션 사용하기
관심사의 분리
응집력(cohesion)과 결합력(coupling)
개발 지침 약어
DRY/OAOO
YAGNI
KIS
EAFP/LBYL
컴포지션과 상속
상속이 좋은 선택인 경우
상속 안티패턴
파이썬의 다중상속
함수와 메서드의 인자
파이썬의 함수 인자 동작방식
함수 인자의 개수
소프트웨어 디자인 우수 사례 결론
소프트웨어의 독립성(orthogonality)
코드 구조
요약
참고 자료

chapter 4 SOLID 원칙

단일 책임 원칙
너무 많은 책임을 가진 클래스
책임 분산
개방/폐쇄 원칙
개방/폐쇄 원칙을 따르지 않을 경우 유지보수의 어려움
확장성을 가진 이벤트 시스템으로 리팩토링
이벤트 시스템 확장
OCP 최종 정리
리스코프 치환 원칙(LSP)
도구를 사용해 LSP 문제 검사하기
애매한 LSP 위반 사례
LSP 최종 정리
인터페이스 분리 원칙
너무 많은 일을 하는 인터페이스
인터페이스는 작을수록 좋다.
인터페이스는 얼마나 작아야 할까?
의존성 역전
엄격한 의존의 예
의존성을 거꾸로
요약
참고 자료

chapter 5 데코레이터를 사용한 코드 개선

파이썬의 데코레이터
함수 데코레이터
클래스 데코레이터
다른 유형의 데코레이터
데코레이터에 인자 전달
데코레이터 활용 우수 사례
데코레이터의 활용 - 흔한 실수 피하기
래핑된 원본 객체의 데이터 보존
데코레이터 부작용 처리
어느 곳에서나 동작하는 데코레이터 만들기
데코레이터와 DRY 원칙
데코레이터와 관심사의 분리
좋은 데코레이터 분석
요약
참고 자료

chapter 6 디스크립터로 더 멋진 객체 만들기

디스크립터 개요
디스크립터 메커니즘
디스크립터 프로토콜의 메서드 탐색
디스크립터의 유형
비데이터(non-data) 디스크립터
데이터 디스크립터
디스크립터 실전
디스크립터를 사용한 애플리케이션
다른 형태의 디스크립터
디스크립터에 대한 추가 고려사항
디스크립터 분석
파이썬 내부에서의 디스크립터 활용
데코레이터를 디스크립터로 구현하기
요약
참고 자료

chapter 7 제너레이터 사용하기

기술적 요구사항
제너레이터 만들기
제너레이터 개요
제너레이터 표현식
이상적인 반복
관용적인 반복 코드
파이썬의 이터레이터 패턴
코루틴(coroutine)
제너레이터 인터페이스의 메서드
코루틴 고급 주제
작은 코루틴에 위임하기 - yield from 구문
비동기 프로그래밍
요약
참고 자료

chapter 8 단위 테스트와 리팩토링

디자인 원칙과 단위 테스트
자동화된 테스트의 다른 형태
단위 테스트와 애자일 소프트웨어 개발
단위 테스트와 소프트웨어 디자인
테스트의 경계 정하기
테스트를 위한 프레임워크와 도구
단위 테스트 프레임워크와 라이브러리
코드 커버리지
모의(mock) 객체
리팩토링
코드의 진화
상용 코드만 진화하는 것이 아니다.
단위 테스트에 대한 추가 논의
속성 기반 테스트
변형 테스트
테스트 주도 개발 간략 소개
요약
참고

chapter 9 일반적인 디자인 패턴

파이썬에 디자인 패턴 적용 시 고려사항
실전 속의 디자인 패턴
생성(creational) 패턴
구조(structural) 패턴
행동(behavioral) 패턴
Null 객체 패턴
디자인 패턴에 대한 최종 정리
디자인에 대한 패턴의 영향성
모델의 이름
요약
참고

chapter 10 클린 아키텍처

클린 코드에서 클린 아키텍처로
관심사의 분리
추상화
소프트웨어 컴포넌트
패키지
컨테이너
유스케이스
코드
서비스
분석
요약
참고


리뷰

구매자 별점

4.0

점수비율

  • 5
  • 4
  • 3
  • 2
  • 1

1명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전