HOME > Detail View

Detail View

파이썬 클린 코드 : 유지보수가 쉬운 파이썬 코드를 만드는 비결 / 개정증보판 (Loan 3 times)

Material type
단행본
Personal Author
Anaya, Mariano 김창수, 역
Title Statement
파이썬 클린 코드 : 유지보수가 쉬운 파이썬 코드를 만드는 비결 / 마리아노 아나야 지음 ; 김창수 옮김
판사항
개정증보판
Publication, Distribution, etc
서울 :   터닝포인트,   2022  
Physical Medium
432 p. : 삽화 ; 24 cm
Varied Title
Clean code in Python : develop maintainable and efficient code (2nd ed.)
ISBN
9791161341330
General Note
파이썬 3.9 신규 기능 및 최신 트렌드 반영  
Bibliography, Etc. Note
참고문헌과 색인수록
Subject Added Entry-Topical Term
Python (Computer program language) Application software --Development
000 00000cam c2200205 c 4500
001 000046134291
005 20221116113712
007 ta
008 221116s2022 ulka b 001c kor
020 ▼a 9791161341330 ▼g 13000
035 ▼a (KERIS)BIB000016556007
040 ▼a 241044 ▼c 241044 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b P999 2022z52
100 1 ▼a Anaya, Mariano
245 1 0 ▼a 파이썬 클린 코드 : ▼b 유지보수가 쉬운 파이썬 코드를 만드는 비결 / ▼d 마리아노 아나야 지음 ; ▼e 김창수 옮김
246 1 9 ▼a Clean code in Python : ▼b develop maintainable and efficient code ▼g (2nd ed.)
250 ▼a 개정증보판
260 ▼a 서울 : ▼b 터닝포인트, ▼c 2022
300 ▼a 432 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 파이썬 3.9 신규 기능 및 최신 트렌드 반영
504 ▼a 참고문헌과 색인수록
650 0 ▼a Python (Computer program language)
650 0 ▼a Application software ▼x Development
700 1 ▼a 김창수, ▼e▼0 AUTH(211009)147570
900 1 0 ▼a 아나야, 마리아노, ▼e
945 ▼a ITMT

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.133 P999 2022z52 Accession No. 121261160 Availability In loan Due Date 2023-05-04 Make a Reservation Available for Reserve R Service M

Contents information

Book Introduction

최근 파이썬은 소프트웨어 개발, 시스템 관리 및 데이터 처리와 같은 다양한 분야에서 매우 널리 사용되고 있다. 그렇지만 클린하지 않은 코드로 인해 가독성이 낮고, 테스트가 용이하지 않은 상황이 자주 발생하고 있으며, 숙련된 개발자라면 이러한 문제를 발견하고 해결할 수 있어야 한다. 이번 개정판에서는 파이썬 3.9 버전의 새로운 기능에 맞춰 코드와 내용을 업데이트하였으며, 기존 코드의 문제점을 개선하고 프로젝트를 성공적으로 관리하는 데 필요한 모든 도구를 제공하고 있다

이 책은 클린코드의 기본 요소가 무엇인지 설명하고 파이썬에서 어떻게 중요한 역할을 하게 되는지 살펴본다. 또한 파이썬 표준 라이브러리와 다른 모범 사례를 통해 효율적이고 가독성이 높은 코드를 어떻게 작성할 수 있는지 살펴본다.

그리고 파이썬에서 객체지향 프로그래밍은 어떻게 구현되는지, 디스크립터와 제너레이터는 무엇인지에 대해 자세히 설명한다. 또한 테스트 작성 시 주의해야 할 디자인 원칙과 일반적인 문제를 해결하기 위해 디자인 패턴을 사용하는 방법에 대해서 안내한다. 마지막 장에서는 모놀리식(monolithic) 단일 애플리케이션을 견고한 플랫폼의 기본 요소로 사용될 마이크로서비스(microservice)로 분리해본다.

파이썬 3.9 신규 기능 및 최신 트렌드가 반영된 견고하면서도 확장성이 뛰어난 파이썬 코드를 만드는 비법
최근 파이썬은 소프트웨어 개발, 시스템 관리 및 데이터 처리와 같은 다양한 분야에서 매우 널리 사용되고 있다. 그렇지만 클린하지 않은 코드로 인해 가독성이 낮고, 테스트가 용이하지 않은 상황이 자주 발생하고 있으며, 숙련된 개발자라면 이러한 문제를 발견하고 해결할 수 있어야 한다. 이번 개정판에서는 파이썬 3.9 버전의 새로운 기능에 맞춰 코드와 내용을 업데이트하였으며, 기존 코드의 문제점을 개선하고 프로젝트를 성공적으로 관리하는 데 필요한 모든 도구를 제공하고 있다

이 책은 클린코드의 기본 요소가 무엇인지 설명하고 파이썬에서 어떻게 중요한 역할을 하게 되는지 살펴본다. 또한 파이썬 표준 라이브러리와 다른 모범 사례를 통해 효율적이고 가독성이 높은 코드를 어떻게 작성할 수 있는지 살펴본다.

그리고 파이썬에서 객체지향 프로그래밍은 어떻게 구현되는지, 디스크립터와 제너레이터는 무엇인지에 대해 자세히 설명한다. 또한 테스트 작성 시 주의해야 할 디자인 원칙과 일반적인 문제를 해결하기 위해 디자인 패턴을 사용하는 방법에 대해서 안내한다. 마지막 장에서는 모놀리식(monolithic) 단일 애플리케이션을 견고한 플랫폼의 기본 요소로 사용될 마이크로서비스(microservice)로 분리해본다.

유지보수가 쉬운 파이썬 코드를 만드는 비결
이 책은 소프트웨어 디자인에 관심이 있거나 파이썬에 대해 보다 자세히 알고 싶어 하는 모든 개발 실무자를 대상으로 하고 있다. 새로 시작하는 프로젝트 또는 기존 시스템에 좋은 파이썬 코딩 기술을 적용하여 효율성을 높이고 비용을 절약하고자 하는 팀 리더나 시니어 엔지니어에게도 많은 도움이 될 것이다.

이 책의 구성은 1장부터 10장까지 단계적으로 어려운 내용이 소개되고 있기 때문에 처음부터 차례대로 내용을 완전히 숙지하고 다음 장으로 넘어가는 것이 좋다.
파이썬의 기본 개념과 함수, 유틸리티와 같은 내용을 소개하여 문제를 효율적으로 해결하기 위한 기초부터 데코레이터, 디스크립터나 비동기 프로그래밍과 같은 고급 주제까지 폭넓게 다루고 있다. 뿐만 아니라 일부 주제는 언어 내부의 동작 원리를 분석하기 때문에 파이썬에 대해 더 깊이 이해하는 데 도움이 될 것이다. 또한 데이터 처리 용도로 파이썬을 사용하는 경우에도 활용할 수 있도록 여러 도구를 소개하고 상용 환경에서 사용하기 위한 환경 설정이나 모범 사례도 소개하고 있다.

<이 책에서 다루는 내용>
1장 코드 포매팅과 도구

파이썬에서 개발 환경을 설정하는 데 필요한 주요 도구에 대해 소개한다. 파이썬 개발을 시작하기 위해 알아야 할 기초 지식뿐만 아니라 코드 정적분석, 문서화, 타입 검사와 코드 포매팅 도구를 사용해 가독성이 높은 코드를 작성하기 위한 가이드라인을 제시한다. 코딩 표준을 이해하는 것은 중요하지만 좋은 의도에만 의존해서는 안 되기 때문에 이 장에서는 도구를 효과적으로 사용할 수 있는 방법에 대해서 알아본다.

2장 파이썬스러운 코드
앞으로 계속 사용하게 될 파이썬의 첫 번째 개념을 살펴본다. 파이썬의 여러 기능이 어떻게 사용되도록 설계되었는지 살펴본다. 훨씬 품질 좋은 파이썬스러운 코드에 대한 근본 아이디어를 살펴본다.

3장 좋은 코드의 일반적인 특징
유지보수가 쉬운 코드 작성에 초점을 두고 소프트웨어 엔지니어링의 일반적인 원칙을 검토한다. 이전 장에서 배운 지식을 활용하여 일반적으로 말하는 깔끔한 디자인이 무엇인지 살펴보고, 그것을 파이썬으로 어떻게 구현해야 하는지 살펴본다.

4장 SOLID 원칙
객체지향 소프트웨어를 위한 디자인 원칙에 대해 다룬다. 이 약자(SOLID)는 소프트웨어 공학에서 사용되는 용어로 각각의 원칙을 파이썬에 어떻게 적용하는지 살펴볼 것이다. 특히 의존성 주입을 통해 유지보수가 쉬운 코드를 작성하는 법에 대해서 배운다.

5장 데코레이터를 사용한 코드 개선
파이썬의 가장 훌륭한 기능 중 하나인 데코레이터를 살펴본다. 함수 또는 클래스에 데코레이터를 작성하는 방법을 이해한 다음에 데코레이터를 코드재사용, 책임 분리, 기능 세분화에 어떻게 사용하는지 살펴본다. 또한 복잡하고 반복적인 함수 서명을 데코레이터를 사용해 단순화하는 방법을 알아본다.

6장 디스크립터로 더 멋진 객체 만들기
객체 지향 설계의 수준을 새로운 차원으로 끌어올리는 파이썬의 디스크립터에 대해 알아본다. 디스크립터는 프레임워크나 도구 개발 시 유용한 기능인데 이것을 잘 사용하면 코드의 가독성을 높이고 재사용성을 높일 수 있다. 개정판에서 보강된 내용은 더 높은 수준에서 파이썬을 이해하는 데 도움이 될 것이다.

7장 제너레이터, 이터레이터 및 비동기 프로그래밍
제너레이터는 아마도 파이썬에서 가장 멋진 기능일 것이다. 반복(iteration)이라는 파이썬의 핵심 개념을 사용해 새로운 프로그래밍 패러다임을 제시한다. 제너레이터와 이터레이터를 사용해 프로그램을 작성해보고 이를 통해 알게 된 내용을 토대로 코루틴(coroutine)과 비동기 프로그래밍의 기본에 대해서 알아본다. 그리고 비동기 프로그래밍과 비동기 반복을 위한 새로운 구문(그리고 새로운 매직 메서드)을 소개하는 것으로 마무리한다.

8장 단위 테스트와 리팩토링
유지보수가 필요한 코드에 대해 단위 테스트가 얼마나 중요한지에 대해 논의한다. 이 장에서는 코드를 수정하고 유지보수하기 위한 전제 조건으로서의 리팩토링과 단위 테스트가 얼마나 중요한지 살펴보고 이를 지원하는 주요 프레임워크인 unittest와 pytest에 대해 살펴본다. 또한 좋은 테스트란 테스트 자체에 있는 것이 아니라 테스트 가능한 코드에 있다는 것에 대해 배워본다.

9장 일반적인 디자인 패턴
문제 해결의 관점이 아니라 유지보수의 관점에서 어떤 식으로 파이썬 코드를 디자인하는 것이 좋은지 검토한다. 이 장에서는 일부 디자인 패턴을 내장하고 있는 것과 같은 파이썬의 특징을 살펴보고 파이썬에서 디자인 패턴을 구현하기 위한 실용적인 접근법을 살펴본다. 그리고 (그리 관습적이지는 않지만) 파이썬에 특화된 패턴들에 대해서도 알아본다.

10장 클린 아키텍처
클린 코드는 훌륭한 아키텍처의 기본이다. 첫 번째 장에서부터 언급된 모든 것들을 전반적으로 살펴보는 것은 상용 배포를 할 때 중요한 역할을 할 것이다.


Information Provided By: : Aladin

Author Introduction

마리아노 아나야(지은이)

마리아노 아나야는 파이썬으로 소프트웨어를 만들고 동료 프로그래머를 가르치는데 대부분의 시간을 보낸 소프트웨어 엔지니어이다. 파이썬 외에는 소프트웨어 아키텍처, 함수형 프로그래밍(functional programming), 분산 시스템과 컨퍼런스 발표에 관심을 가지고 있다. Euro Python 2016과 2017에서 연사로 활동했다. 저자에 대해 더 자세히 알기 원한다면 GitHub에서 rmariano 계정으로 검색할 수 있다. 발표 자료를 공유하는 http://speakerdeck.com 사이트의 사용자 이름은 rmariano이다.

김창수(옮긴이)

아주대학교에서 컴퓨터공학을 전공하고 스웨덴 룰레오 대학교에 교환학생을 다녀왔다. 중학교때부터 시작한 개발을 천직으로 알고 행복한 코딩을 계속하고 있다. 네이버에서 검색광고시스템을 개발했고, 지금은 SK텔레콤에서 NUGU 플랫폼의 자연어 이해 서버 개발을 담당하고 있다.

Information Provided By: : Aladin

Table of Contents

서문
chapter 1 코드 포매팅과 도구
서론
클린 코드의 의미
클린 코드의 중요성
예외 상황
클린 코드에서 코드 포매팅의 역할
프로젝트 코딩 스타일 가이드 준수
문서화(Documentation)
코드 주석(code comments)
Docstring
도구 설정
데이터 타입 일관성 검사
일반적인 코드 검증
자동 포매팅
자동 검사 설정
요약
참고자료

chapter 2 파이썬스러운(pythonic) 코드
인덱스와 슬라이스
자체 시퀀스 생성
컨텍스트 관리자(context manager)
컨텍스트 관리자 구현
컴프리헨션(comprehension)과 할당 표현식
프로퍼티, 속성(attribute)과 객체 메서드의 다른 타입들
파이썬에서의 밑줄
프로퍼티
보다 간결한 구문으로 클래스 만들기
이터러블 객체
컨테이너 객체
객체의 동적인 속성
호출형(callable) 객체
매직 메서드 요약
파이썬에서 유의할 점
변경 가능한(mutable) 파라미터의 기본 값
내장(built-in) 타입 확장
비동기 코드(asynchronous code)에 대한 간략한 소개
요약
참고 자료

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

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

chapter 5 데코레이터를 사용한 코드 개선
파이썬의 데코레이터
함수 데코레이터
클래스 데코레이터
다른 유형의 데코레이터
고급 데코레이터
데코레이터에 인자 전달
기본값을 가진 데코레이터
코루틴(coroutine)을 위한 데코레이터
데코레이터를 위한 확장 구문
데코레이터 활용 우수 사례
함수 서명 변경
파라미터 유효성 검사
코드 추적
데코레이터의 활용 - 흔한 실수 피하기
래핑된 원본 객체의 데이터 보존
데코레이터 부작용 처리
어느 곳에서나 동작하는 데코레이터 만들기
데코레이터와 클린 코드
상속보다 컴포지션(composition)
데코레이터와 DRY 원칙
데코레이터와 관심사의 분리
좋은 데코레이터 분석
요약
참고 자료

chapter 6 디스크립터로 더 멋진 객체 만들기
디스크립터 개요
디스크립터 메커니즘
디스크립터 프로토콜의 메서드 탐색
디스크립터의 유형
비데이터(non-data) 디스크립터
데이터 디스크립터
디스크립터 실전
디스크립터를 사용한 애플리케이션
다른 형태의 디스크립터
디스크립터에 대한 추가 고려사항
디스크립터 분석
파이썬 내부에서의 디스크립터 활용
데코레이터를 디스크립터로 구현하기
디스크립터 최종 정리
디스크립터의 인터페이스
디스크립터의 객체 지향 설계
디스크립터에 대한 타입 어노테이션
요약
참고 자료

chapter 7 제너레이터, 이터레이터 및 비동기 프로그래밍
기술적 요구사항
제너레이터 만들기
제너레이터 개요
제너레이터 표현식
이상적인 반복
관용적인 반복 코드
코루틴(coroutine)
제너레이터 인터페이스의 메서드
코루틴 고급 주제
비동기 프로그래밍
비동기 매직 메서드
비동기 반복
비동기 제너레이터
요약
참고 자료

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

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

chapter 10 클린 아키텍처
클린 코드에서 클린 아키텍처로
관심사의 분리
모놀리식(monolithic) 애플리케이션과 마이크로서비스
추상화
소프트웨어 컴포넌트
패키지
도커 컨테이너
아키텍처링 예제
서비스
요약
참고 자료

New Arrivals Books in Related Fields

Wong, David (2023)
Blandy, Jim (2023)