Effective Python 파이썬 코딩의 기술
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
책 소개
이 책이 속한 분야
- 국내도서 > 컴퓨터/IT > 프로그래밍 언어 > Python(파이썬)
- 국내도서 > 컴퓨터/IT > 프로그래밍 언어 > 프로그래밍일반
- 국내도서 > 컴퓨터/IT > 대학교재
- 국내도서 > 대학교재 > 컴퓨터
작가정보
저자(글) 브렛 슬라킨
저자 브렛 슬라킨(Brett Slatkin)은 구글의 선임 소프트웨어 엔지니어다. 구글 소비자 설문조사(Google Consumer Surveys)의 엔지니어링 리드이자 공동 설립자이기도 하다. 이전에는 구글 앱 엔진(Google App Engine)의 파이썬 인프라 쪽에서 일했다. PubSubHubbub 프로토콜의 창시자 중 한 명이다. 9년 전 구글의 대규모 서버를 관리할 때 파이썬을 시작했다. 업무 시간 외에는 오픈 소스 도구 작업을 하거나 개인 웹사이트에 소프트웨어, 자전거 등 여러 가지 주제로 글을 올린다. 뉴욕시에 있는 컬럼비아 대학에서 컴퓨터 공학 학위를 취득했다. 지금은 샌프란시스코에 살고 있다.
역자 김형철은 대학과 대학원에서 수학을 전공하고, 졸업 후 모바일 게임 회사에서 다수의 게임 개발을 해왔다. 현재는 프리랜서 개발자로 독립하여 수학과 물리 교육용 게임 개발을 구상 중이며 번외로 프로그래밍 번역에 참여하고 있다. 파이썬, 루아와 같은 군더더기 없이 간결한 문법을 가진 프로그래밍 언어를 좋아하며 스칼라 언어의 미래에 깊은 관심을 갖고 있다. 수학적 지식을 바탕으로 최대한 최적화시켜 프로그램을 작성할 수 있는 고수가 되기를 바라는 소박한 프로그래머다.
목차
- 1장 ▶ 파이썬다운 생각 015
Better way 1 사용 중인 파이썬의 버전을 알자 016
Better way 2 PEP 8 스타일 가이드를 따르자 017
Better way 3 bytes, str, unicode의 차이점을 알자 020
Better way 4 복잡한 표현식 대신 헬퍼 함수를 작성하자 024
Better way 5 시퀀스를 슬라이스하는 방법을 알자 028
Better way 6 한 슬라이스에 start, end, stride를 함께 쓰지 말자 032
Better way 7 map과 filter 대신 리스트 컴프리헨션을 사용하자 034
Better way 8 리스트 컴프리헨션에서 표현식을 두 개 넘게 쓰지 말자 036
Better way 9 컴프리헨션이 클 때는 제너레이터 표현식을 고려하자 039
Better way 10 range보다는 enumerate를 사용하자 041
Better way 11 이터레이터를 병렬로 처리하려면 zip을 사용하자 043
Better way 12 for와 while 루프 뒤에는 else 블록을 쓰지 말자 046
Better way 13 try/except/else/finally에서 각 블록의 장점을 이용하자 049
finally 블록 050
else 블록 050
모두 함께 사용하기 051
2장 ▶ 함수 053
Better way 14 None을 반환하기보다는 예외를 일으키자 054
Better way 15 클로저가 변수 스코프와 상호 작용하는 방법을 알자 057
데이터 얻어오기 060
파이썬 2의 스코프 062
Better way 16 리스트를 반환하는 대신 제너레이터를 고려하자 063
Better way 17 인수를 순회할 때는 방어적으로 하자 066
Better way 18 가변 위치 인수로 깔끔하게 보이게 하자 072
Better way 19 키워드 인수로 선택적인 동작을 제공하자 075
Better way 20 동적 기본 인수를 지정하려면 None과 docstring을 사용하자 079
Better way 21 키워드 전용 인수로 명료성을 강요하자 083
파이썬 2의 키워드 전용 인수 086
3장 ▶ 클래스와 상속 089
Better way 22 딕셔너리와 튜플보다는 헬퍼 클래스로 관리하자 090
클래스 리팩토링 093
Better way 23 인터페이스가 간단하면 클래스 대신 함수를 받자 097
Better way 24 객체를 범용으로 생성하려면 @classmethod 다형성을 이용하자 102
Better way 25 super로 부모 클래스를 초기화하자 108
Better way 26 믹스인 유틸리티 클래스에만 다중 상속을 사용하자 114
Better way 27 공개 속성보다는 비공개 속성을 사용하자 119
Better way 28 커스텀 컨테이너 타입은 collections.abc의 클래스를 상속받게 만들자 126
4장 ▶ 메타클래스와 속성 133
Better way 29 게터와 세터 메서드 대신에 일반 속성을 사용하자 134
Better way 30 속성을 리팩토링하는 대신 @property를 고려하자 139
Better way 31 재사용 가능한 @property 메서드에는 디스크립터를 사용하자 144
Better way 32 지연 속성에는 _ _getattr_ _, _ _getattribute_ _, _ _setattr_ _을 사용하자 151
Better way 33 메타클래스로 서브클래스를 검증하자 158
Better way 34 메타클래스로 클래스의 존재를 등록하자 161
Better way 35 메타클래스로 클래스 속성에 주석을 달자 167
5장 ▶ 병행성과 병렬성 171
Better way 36 자식 프로세스를 관리하려면 subprocess를 사용하자 172
Better way 37 스레드를 블로킹 I/O용으로 사용하고 병렬화용으로는 사용하지 말자 178
Better way 38 스레드에서 데이터 경쟁을 막으려면 Lock을 사용하자 183
Better way 39 스레드 간의 작업을 조율하려면 Queue를 사용하자 188
Queue로 문제 해결하기 192
Better way 40 많은 함수를 동시에 실행하려면 코루틴을 고려하자 197
생명 게임 200
파이썬 2의 코루틴 207
Better way 41 진정한 병렬성을 실현하려면 concurrent.futures를 고려하자 209
6장 ▶ 내장 모듈 215
Better way 42 functools.wraps로 함수 데코레이터를 정의하자 216
Better way 43 재사용 가능한 try/finally 동작을 만들려면 contextlib와 with 문을 고려하자 219
with 타깃 사용하기 221
Better way 44 copyreg로 pickle을 신뢰할 수 있게 만들자 223
기본 속성 값 226
클래스 버전 관리 228
안정적인 임포트 경로 229
Better way 45 지역 시간은 time이 아닌 datetime으로 표현하자 231
time 모듈 232
datetime 모듈 234
Better way 46 내장 알고리즘과 자료 구조를 사용하자 237
더블 엔디드 큐 237
정렬된 딕셔너리 238
기본 딕셔너리 239
힙 큐 240
바이섹션 241
이터레이터 도구 242
Better way 47 정밀도가 중요할 때는 decimal을 사용하자 243
Better way 48 커뮤니티에서 만든 모듈을 어디서 찾아야 하는지 알아두자 247
7장 ▶ 협력 249
Better way 49 모든 함수, 클래스, 모듈에 docstring을 작성하자 250
모듈 문서화 251
클래스 문서화 252
함수 문서화 253
Better way 50 모듈을 구성하고 안정적인 API를 제공하려면 패키지를 사용하자 255
네임스페이스 256
안정적인 API 258
Better way 51 루트 Exception을 정의해서 API로부터 호출자를 보호하자 262
Better way 52 순환 의존성을 없애는 방법을 알자 266
임포트 재정렬 268
임포트, 설정, 실행 269
동적 임포트 271
Better way 53 의존성을 분리하고 재현하려면 가상 환경을 사용하자 273
pyvenv 명령 275
의존성 재현 277
8장 ▶ 제품화 281
Better way 54 배포 환경을 구성하는 데는 모듈 스코프 코드를 고려하자 282
Better way 55 디버깅 출력용으로는 repr 문자열을 사용하자 285
Better way 56 unittest로 모든 것을 테스트하자 289
Better way 57 pdb를 이용한 대화식 디버깅을 고려하자 293
Better way 58 최적화하기 전에 프로파일하자 295
Better way 59 tracemalloc으로 메모리 사용 현황과 누수를 파악하자 301
찾아보기 305
추천사
-
“슬라킨이 쓴 《파이썬 코딩의 기술》의 Better way는 각기 독립된 내용과 이를 설명하는 소스 코드로 구성되어 있다. 덕분에 원하는 곳을 펼쳐 읽으면 된다. Better way는 원하는 순서대로 쉽게 찾아 학습할 수 있다. 학생부터 중급 프로그래머까지 이 책을 읽기를 추천한다. 매우 넓은 범위에 걸쳐 던지는 주요 조언들을 감탄할 만큼 간결한 소스에 잘 담아 냈기 때문이다.”
-
“여러 해에 걸쳐 파이썬을 프로그래밍해 왔고 파이썬을 잘 안다고 생각했다. 다양한 팁과 기술이 녹아 있는 보물 같은 책을 보게 되어 정말 감사하다. 내장 데이터 구조를 사용해 더 빠르게 동작하게 하거나, 키워드 전용 인수를 사용해 더 이해하기 쉽게 만들거나, 리스트를 병렬로 순회하는 데 zip을 사용하여 더욱더 파이썬답게 만드는 등 내 파이썬 코드에 할 수 있는 게 너무나도 많다는 걸 깨달았다.”
-
“《파이썬 코딩의 기술》은 파이썬 코딩 스타일과 기능을 향상시키는 명쾌한 지침을 제공하여 여러분의 파이썬 스킬을 한 단계 높여줄 것이다.”
-
“오랜 시간동안 파이썬을 사용하며 ‘어떻게 하면 더 좋은 코드를 만들 수 있을까’ 고민해 왔는데, 그 해결책을 접하게 된 책이다. 책 전체에 녹아 있는 파이썬다운 전개 방식을 습득하면 github에 있는 파이썬 소스들이 왜 그렇게 작성되었는지 이해하는 데 큰 도움이 된다. 셸 스크립트 대용으로 파이썬을 써왔다면 이 책을 통해 파이썬 애플리케이션을 개발하고 싶은 마음이 생길 것이다.”
책 속으로
파이썬 프로그래밍 언어의 특별한 강점과 매력을 완전히 파악하기는 어려울 수 있다. 다른 언어에 익숙한 개발자는 종종 파이썬의 풍부한 표현력을 수용하는 대신 선입견을 품고 접근한다. 어떤 개발자는 다른 방향으로 너무 멀리 나아가기도 하는데, 예를 들면 나중에 큰 문제를 일으킬 수도 있는 파이썬 기능을 과용하는 것이다.
이 책은 ‘파이썬답게’ 프로그램을 작성하는 방법에 대한 통찰력을 제공한다. 가장 좋은 방법은 파이썬을 직접 사용해 보는 것이다. 독자가 언어에 대한 기본적인 이해는 하고 있다고 가정한다. 초보 개발자라면 파이썬 기능을 가장 잘 사용한 예를 학습할 수 있다. 숙련된 개발자라면 새 도구의 강점을 확신을 갖고 수용하는 방법을 배우게 될 것이다.
독자 여러분이 파이썬을 사용해 커다란 영향력을 발휘하도록 준비시키는 것이 목적이다.
- 저자 서문 중에서
파이썬은 초보자부터 전문가까지 상당히 많은 사용자 층을 보유하고 있다. 이 말은 초보자가 쉽게 배워서 사용할 수 있는 언어인 동시에 전문가도 사용할 만큼 강력한 프로그래밍 기능을 제공한다는 의미다. 다양한 플랫폼에서 사용하며 파이썬 커뮤니티에서 제공하는 라이브러리(모듈)가 풍부하여 국내뿐만 아니라 전 세계 대학에서도 가장 많이 교육하는 프로그래밍 언어 중 하나다. 여러 교육·연구 기관, 산업계에서도 이용이 늘고 있다. 파이썬은 순수한 프로그래밍 언어의 기능 이외에도 다른 언어로 작성된 모듈을 연결하는 글루 언어(glue
language) 기능으로도 자주 이용된다. 실제 파이썬은 많은 상용 애플리케이션의 스크립트 언어로 채택되고 있다.
이 책은 프로그래밍 분야에서 전방위적 역할을 하는 파이썬의 레벨을 한 단계 끌어올릴 수 있도록 59개의 팁과 테크닉을 설명하고 있다. 저자의 다년간에 걸친 파이썬의 개발 경험이 Better way 하나하나에 녹아 있다.
- 역자 서문 중에서
출판사 서평
파이썬 코드의 동작과 성능에 강력한 영향을 주는 59가지 기술과 해법을 뛰어난 예제로 설명한다!
파이썬, 이제 똑똑하게 코딩하자!
파이썬다운 생각을 키우자
일반적인 작업조차 파이썬답게 코딩하는 법을 익히면 더 나은 동작과 성능을 이끌어 낼 수 있다. 파이썬 2와 파이썬 3 프로그래머 모두에게 적합하며 CPython, Jython, PyPy 같은 런타임을 사용하는 프로그래머에게도 유용하다.
더 나은 코딩 노하우를 배우자
다양한 팁과 기술을 현실성 있는 코드 예제와 함께 59가지 Better way에 수록했다. 해야 할 것과 피해야 할 것, 적절한 균형을 유지하는 법, 왜 이것이 최선의 선택인지 조언하며 파이썬 코드를 더 효과적으로 작성할 수 있게 해준다.
제공된 코드를 직접 실행하며 이해하자
이 책에 실린 코드 조각의 전체 코드가 별도 파일로 제공되므로 스스로 실습하기에 용이하다. 또한, 코드를 직접 수정해보고 프로그램을 실행하며 책에서 설명한 내용을 확실하게 이해할 수 있다.
[출판사 리뷰]
더 나은 파이썬 코드를 작성하는 59가지 기술과 해법
59가지 Better Way로 "파이썬답게" 코딩하는 테크닉을 배운다!
같은 범주끼리 장으로 묶어두었지만 59가지 Better Way는 그 자체로 독립적이다. 상황에 따라 원하는 내용으로 자유롭게 옮겨가며 학습할 수 있다. 또한, 코드를 좀 더 파이썬답게 작성하는 기술을 알려주므로 따라하며 학습하다 보면 한 차원 높은 코드를 작성할 수 있다.
파이썬 2와 파이썬 3의 차이점을 알고 더 나은 방법을 탐구한다!
어느 한 버전에 치우치지 않고 파이썬 2와 파이썬 3의 장단점, 차이점을 정확히 짚어준다. 사용 중인 파이썬 버전이 어떤 것이든 더 나은 파이썬 코드를 작성하는 데 도움이 되는 유용한 팁과 노하우를 학습할 수 있다. 또한, 단순히 솔루션을 제시하기보다는 방향을 제시하여 실전에서 더 나은 방법을 연구할 수 있게 도와준다.
똑똑한 코드 작성의 기술과 해법을 깔끔하게 담았다!
더 나은 코딩 기술을 Better Way 한 줄로 정리했다. Note에는 작업할 때 알아두면 좋은 팁과 저자의 노하우가 정리되어 있다. 바쁜 독자라면 각 Better way의 마지막 부분에 있는 핵심 정리를 참고하는 게 좋다. 해당 절에서 설명한 내용을 요약하여 깔끔하게 목록으로 정리했다. 문법 강조와 살아있는 예제 소스 제공은 기본이다!
기본정보
ISBN | 9791186978825 | ||
---|---|---|---|
발행(출시)일자 | 2016년 03월 31일 | ||
쪽수 | 312쪽 | ||
크기 |
152 * 225
* 13
mm
/ 478 g
|
||
총권수 | 1권 | ||
원서명/저자명 | Effective Python/Addison-Wesley Professional | ||
이 책의 개정정보 |
새로 출시된 개정판이 있습니다.
개정판보기
|
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립