• 베스트
  • 소득공제
  • 무료배송

파이썬 코딩의 기술 51(BETTER PYTHON CODE) - 똑똑하게 코딩하는 법

  • 데이비드 메르츠
  • 김진호
  • 길벗
  • 2024년 07월 15일
사용자 평점
0리뷰 0개
10%29,70033,000원
적립금
1,650원 (5% 적립)
추가 적립 안내
  • 5만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

  • 10만원 이상 결제 시 (*배송비 제외)

    정가제FREE(상품/사은품) 금액이
    2,000원 이상이면 2,000원 추가적립

    정가제FREE(상품/사은품) 금액이
    5,000원 이상이면 5,000원 추가적립

회원가입 시 적립금 즉시 지급!

배송비
무료 (해외배송의 경우 지역에 따라 상이)

배송안내

배송비 안내
  • 1만원 이상 주문 시 무료배송 입니다.
  • 주문하신 상품을 해외로 배송 하시는 경우에는 별도의 항공료 가 부과됩니다
서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
주문 수량 변경시 안내

[주문/배송] 주문 수량 변경 시 안내

주문 수량 변경 시,배송일정이 변경될 수 있으니 반드시 확인해 주시기 바랍니다.
(고객센터 1544-9020)

지금 주문하면 9/3(목) 출고 가능
택배보다 빠른, 나우드림
상품 규격 정보
상품상세정보
ISBNISBN-13 : 9791140714056
쪽수384쪽
크기규격 외(152mm X 225mm, 신국판)
제품구성단행본
이 책이 속한 분야
  • 컴퓨터/IT > 인터넷
관련 이벤트

AI추천 이유

책 소개

파이썬 설계 철학까지 이해하는 파이썬 코딩의 기술 실전편 51!

지금보다 더 나은 프로그래머가 되고 싶은, 모든 파이썬 개발자를 위한, 파이썬 전문가 가이드!

 

파이썬 코딩에는 파이썬 다운 기술이 필요하다! 저자는 25년간 열정적으로 파이썬을 사랑하고 사용해오면서 자신의 코드 및 실제 현업 코드에서 파이썬 개발자들이 쉽게 빠지는 잘못, 함정, 오류들을 발견해 왔다. 이 책은 그 중 51가지를 선별해 관련된 개념끼리 묶어서 총 9개 장으로 소개한다. 각 장과 절의 내용은 서로 독립적으로 구성하여 그때그때 필요한 부분만 참고할 수 있게 했다. 또한, 실제 프로젝트 상황 및 간결하고 명확한 예제를 제시해 문제와 솔루션을 깊이 이해하고, 문제에 대해 올바르게 사고하는 방법을 설명하려고 노력했다. 문제와 솔루션을 이해하는 과정에서 파이썬의 설계 철학과 파이썬이 추구하는 가치를 다시 한번 상기하고, 파이썬의 잠재력을 끌어올리는 프로그래밍 기법을 배우고, 궁극적으로 파이썬 코드의 질을 한 단계 향상시킬 수 있을 것이다.

목차

[목 차]

 

1장 잘못된 방식으로 순환하기

__1.1 (드물지만) 순환을 위해 목록 생성하기

__1.2 색인을 순환하는 대신 enumerate( ) 사용하기

__1.3 dict.items( )가 필요할 경우 dict.keys( )로 순환하지 않기

__1.4 순환 중 객체 변형

__1.5 while 순환보다 for 순환 사용하기

__1.6 ‘순환과 절반을 위한 바다코끼리 연산자

__1.7 zip( )으로 다중 반복 가능 객체 간소화하기

__1.8 zip(strict=True) itertools.zip_longest( )

__1.9 정리

 

2장 동등성과 동일성의 혼동

__2.1 클로저의 늦은 연결

__2.2 불리언 논리 값에 대한 지나친 검증

__2.3 x == None 비교하기

__2.4 가변 기본 매개 변수에 대한 오해

____2.4.1 첫 번째 방법, 클래스 사용하기

____2.4.2 두 번째 방법, None 보초 값 사용하기

____2.4.3 세 번째 방법, 상태 생성기의 이점 이용하기

__2.5 가변 객체에 대한 복사 대 참조

__2.6 (재사용이 있는 상황에서) is == 혼동하기

__2.7 정리

 

3장 파이썬의 여러 가지 함정

__3.1 이름 지정

____3.1.1 표준 라이브러리 모듈과 동일한 파일 이름 사용하기

____3.1.2 import * 사용 피하기

____3.1.3 비어 있거나 지나치게 일반적인 except

__3.2 단순 문자열 연결의 2차 시간 복잡도

__3.3 파일을 열 때 상황 정보 관리자 사용하기

____3.3.1 첫 번째 위험

____3.3.2 두 번째 위험

____3.3.3 취약성 수정하기

__3.4 .sort( ) sorted( )의 선택적 매개 변수 key

__3.5 불확실한 키에는 dict.get( ) 사용하기

__3.6 정리

 

4장 파이썬 고급 활용

__4.1 type(x) == type(y) 비교하기

__4.2 (다시 한번) 이름 지정

____4.2.1 내장 이름의 재정의

____4.2.2 보호된 속성에 직접 접근하기

__4.3 사용 빈도가 낮은 기능에 주목하기

____4.3.1 f 문자열 디버깅

____4.3.2 가공자의 우아한 마법

____4.3.3 itertools (충분히) 사용하기

____4.3.4 more-itertools 3자 라이브러리

__4.4 자료형 주석은 실행 시간 자료형이 아니다

____4.4.1 자료형 주석은 실행 시간 제약이 아니다

____4.4.2 typing.NewType()을 실행 시간 자료형으로 오해하기

__4.5 정리

 

5장 할 수 있다고 해서 해야 한다는 뜻은 아니다

__5.1 메타클래스

__5.2 원숭이 패치

__5.3 읽기 메서드와 설정 메서드

__5.4 허락보다 용서받는 것이 더 쉽다

__5.5 구조적 패턴 대조

__5.6 정규 표현식과 재앙적 역추적

__5.7 정리

 

6장 적절한 데이터 구조 선택하기

__6.1 collections.defaultdict

__6.2 collections.Counter

____6.2.1 해결책

____6.2.2 잘못

__6.3 collections.deque

____6.3.1 해결책

____6.3.2 잘못

__6.4 collections.ChainMap

____6.4.1 해결책

____6.4.2 잘못

__6.5 데이터 클래스와 명명된 튜플

____6.5.1 명명된 튜플 사용하기

____6.5.2 정적과 동적

____6.5.3 데이터 클래스

__6.6 효과적인 구상 연속 순서열

__6.7 정리

 

7장 데이터 구조의 잘못된 사용

__7.1 반복된 목록 탐색의 2차 시간 복잡도

__7.2 목록 중간에서 요소를 제거하거나 추가하기

____7.2.1 좀 더 효율적인 데이터 구조

__7.3 문자열은 문자열의 반복 가능한 객체 집합

__7.4 상수를 사용하는 대신 enum (자주) 사용하기

__7.5 많이 알려지지 않은 사전 메서드 익히기

____7.5.1 객체를 정의하는 사전

____7.5.2 정기적으로 발생하는 잘못으로 돌아가기

__7.6 JSON과 파이썬은 서로 깔끔하게 변환되지 않는다

____7.6.1 JSON에 대한 몇 가지 배경

____7.6.2 왕복에 실패하는 데이터

__7.7 자신만의 데이터 구조 만들기

____7.7.1 자신만의 것을 만드는 것이 나쁜 생각일 때

____7.7.2 자신만의 것을 만드는 것이 좋은 생각일 때

____7.7.3 핵심 요약

__7.8 정리

 

8장 보안

__8.1 무작위성의 종류

____8.1.1 암호학적 무작위성을 위해 secrets 사용하기

____8.1.2 재현 가능한 무작위 분포

__8.2 ‘안전한소스 코드에 비밀번호나 기타 비밀 정보 넣기

__8.3 ‘자신만의보안 기제 만들기

__8.4 마이크로 서비스에 SSL/TLS 사용하기

__8.5 3자 라이브러리 requests 사용하기

__8.6 데이터베이스 API를 사용하지 않을 경우의 SQL 주입 공격

__8.7 안전하다는 가정을 확인하기 위해 assert 사용하지 않기

__8.8 정리

 

9장 파이썬에서의 수치 계산

__9.1 IEEE-754 부동 소수점 숫자 이해하기

____9.1.1 NaN(그리고 다른 부동 소수점 숫자)을 비교하기

____9.1.2 NaN statistics.median()

____9.1.3 부동 소수점 숫자의 순진한 사용: 결합법칙과 분배법칙

____9.1.4 부동 소수점 숫자의 순진한 사용: 입자성

__9.2 숫자 자료형

____9.2.1 금융 계산에 부동 소수점 숫자를 사용하지 않기

____9.2.2 수치 데이터 자료형의 비직관적인 동작

__9.3 정리

 

부록 다른 책에서 읽을 만한 주제

__A.1 테스트 주도 개발

__A.2 동시성

__A.3 패키징

__A.4 자료형 검사

__A.5 수치 및 데이터프레임 라이브러리

 

찾아보기

파이썬 코딩의 기술 51가지 찾아보기

추천사

    수년간 시행 착오를 거쳐야 알 수 있는 중요한 문제들을 실수 없이 빨리 배우고 성장하라.

    - 쿠샬 다스, CPython 핵심 개발자

     

    찾기 어려운 버그를 피하고 싶은 초보자, 더 효율적인 코드를 작성하려는 전문가, 모두를 위한 책

    - 마크-앙드레 렘버그, EuroPython 의장

     

    중급, 고급 개발자가 파이썬 프로그래밍 기술을 향상시킬 수 있는 많은 통찰을 효과적으로 알려준다.

    - 알렉스 마르텔리, 파이썬 쿡북 저자

     

    잘 정리되어 있고 읽기 쉽습니다. 코드의 스타일과 성능을 개선하는 데 귀중한 자료입니다. 특히 보안 섹션은 모범 사례에 대한 실용적이고 높은 수준의 개요를 제공합니다. 예제는 간결하고 명확하게 설명되어 있습니다.

    - Amazon 독자

     

    실제 프로젝트 상황과 예제로 파이썬다운 방식의 코딩 스타일을 강조하고, 파이썬의 핵심 철학인아름다움이 추함보다 낫다를 몸소 실천하는 코드 작성법을 소개합니다

    - 조현석, 소프트웨어 엔지니어

     

    좀 더 효율적인 데이터 구조를 만드는 법, 네이밍 규칙, 메타클래스부터 심지어 보안까지 실제 코드 예시로 상세하게 설명해 줍니다.

    - 이장훈, 데브옵스 엔지니어

     

    보통 파이썬 개발자라면 귀찮다고 넘어갔을 법한 문법이나 개발 패턴에 대해서 쉽게 소개하고 있습니다. 데이터 구조나 보안, 수치 연산과 관련된 내용도 다루고 있어서, 다양한 분야에서 파이썬을 사용하면서 놓칠 법한 부분을 잘 서술해준 것 같습니다.

    - 강찬석, 9년 차 소프트웨어 엔지니어

     

    파이썬스러운 코드(Pythonic Code)를 사용할 수 있도록 현재 잘못 사용하는 코드를 개선하는 방법을 설명합니다. 또한 순환 구문과 객체 지향, 네이밍과 함수, 보안 등 우리가 흔히 사용하는 코드에 대한 다양한 주제를 다루며 코드 작성 시 유의할 점을 안내해줍니다.

    - 임승민, 데이터 전환 개발자

     

    책에서 제시한 예제들이 매우 실용적이었고, 현업에서 바로 코드에 적용할 수 있는 많은 아이디어를 제공해주었습니다. 책의 구성과 설명이 매우 명확하고 직관적이며, 각 주제는 체계적으로 정리되어 있어 처음부터 끝까지 순서대로 읽어가면서 쉽게 이해할 수 있었습니다.

    - 이석곤, 빅데이터 엔지니어

     

    ‘내가 파이썬을 제대로 쓰고 있을까?’라는 생각을 한 번이라도 해본 적이 있다면 꼭 한번 읽어 보면 좋은 책입니다. 코드를 작성하며 흔히 저지를 수 있는 실수들과 다양한 주제를 다루기 때문에 실무에 활용하는 데 좋은 지침서가 될 것 같습니다.

    - 이호철, 프론트엔드 개발자

출판사 서평



간단하고 깔끔하게, 명확하고 효율적으로, 파이썬을 사용하라.

 

파이썬을 파이썬답게 사용하자

widgets.set_count(widgets.get_count() + 1) 파이썬 전문가가 이 코드를 보았다면 훨씬 직관적이고 알기 쉬운 widgets.count += 1을 사용했을 것이다. 많은 파이썬 코드가 잘못되었거나 우아하지 않거나 다른 언어를 사용하는 방식을 사용한 탓에 파이썬답지 않다.

 

파이썬 전문가가 되자

일반 코더와 파이썬 전문가를 구분하는 기준은 무엇일까? 단순히 관행을 아는 것에 그치지 않고, 파이썬이 가진 다양한 측면의 장점과 함정을 이해하여 왜 반드시 이 방법을 사용해야 하는지 아는 것이다. 파이썬의 강력함, 개성, 철학을 잘 이해하고 코드를 작성해보자.

 

함정, 문제, 시행착오를 피하자

각 장마다 파이썬 개발자들이 쉽게 빠질 수 있는 잘못, 함정, 오류를 제시하고, 이를 피하는 방법과 솔루션을 간결하고 명확한 코드 예제로 설명했다. 모든 문제는 저자가 실제 코드에서, 때로는 필드에서, 때로는 코드 리뷰 중에 발견한 문제다. 버그를 피하고 효율적인 코드를 작성하는 방법을 배우자.

[지은이 서문]

이 책을 처음부터 끝까지 모두 읽을 필요는 없습니다. 물론 전부 읽는 것이 여러분에게 도움이 될 것임은 자명합니다. 각 장은 관련된 개념을 묶어서 다루고 있지만 서로 독립적이며, 각 장의 절도 자체적인 완결성을 가지고 있습니다. 필요한 부분만 읽을 수 있으며, 그렇다 해도 각각의 내용은 매우 흥미로울 것입니다. 일부는 다른 부분에 비해 더 높은 수준의 내용을 다루기도 하지만, 쉬운 내용을 다룬다고 생각되는 부분에서도 여러분이 알지 못했던 새로운 뉘앙스를 발견할 수 있고, 반대로 고급 내용을 다루는 부분에서도 접근하기 쉬우며 깨달음을 주는 내용을 발견할 수 있을 것입니다.

 

[옮긴이 서문]

파이썬 세계의 유명 인사인 데이비드 메르츠가 집필한 『Better Python Code』를 우리말로 옮기면서 느낀 것은 파이썬은 개발자가 어떻게 사용하느냐에 따라 완전히 다른 모습을 보여 주는 언어라는 것입니다. 이 책은 일반적으로 우리가 파이썬 개발 서적에서 기대하는 내용인 파이썬 프로그래밍 언어의 풍부한 가능성을 탐구하거나 그 안에서 좀 더 효율적이고 우아한 코드를 작성하는 방법을 제시하는 것에서 그치지 않고, 파이썬 개발자로서 어떤 것이 올바른 개발 방법인가에 대해 끊임없이 고민하고 개선해 나가도록 채찍질합니다. 그리고 저자는 깊은 지식과 풍부한 경험을 바탕으로 개발자들이 파이썬 코드의 질을 한 단계 높일 수 있는 방법을 세심하게 안내합니다.


 

저자 소개
저자 : 데이비드 메르츠
도서리뷰 (0)
이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.

등록된 리뷰가 없습니다

첫번째 리뷰어가 되어주세요

교환/반품/환불
반품/교환방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
반품/교환 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

매장에서 사용할 수 있는 바코드가 있어요!