Top

모던 파이썬 쿡북 [주제별 문제 해결 레시피 모음]

  • 원서명Modern Python Cookbook: The latest in modern Python recipes for the busy modern programmer (ISBN 9781786469250)
  • 지은이스티븐 로트(Steven F. Lott)
  • 옮긴이이정문
  • ISBN : 9791161751146
  • 43,000원
  • 2018년 02월 22일 펴냄
  • 페이퍼백 | 944쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

요약

기초 개념부터 복잡한 응용까지 광범위한 파이썬 3 프로그램 구현 방법을 설명한다. 자료 구조, 객체지향, 함수형 프로그래밍, 통계 프로그래밍 등 주제별로 효율적인 파이썬 프로그래밍 기법을 배울 수 있다. 그리고 테스트 코드 작성, 웹 서비스, 설정 파일 관리, 애플리케이션 통합과 관련된 문제 해결 능력도 키울 수 있다.

이 책에서 다루는 내용

■ 파이썬 구문을 상세히 살펴보고 효과적으로 활용하는 방법
■ 함수를 통한 코드 가독성 개선
■ 내장 자료 구조를 사용해 데이터를 효과적으로 다루는 방법
■ 고급 프로그래밍 기법에 익숙해지기
■ 함수형 프로그래밍과 통계 프로그래밍 기능
■ 프로그램이 의도대로 동작하는지 확인하는 테스트 코드 작성법
■ 파이썬 애플리케이션 통합

이 책의 대상 독자

이 책은 웹 개발자, 프로그래머, 엔터프라이즈 프로그래머, 엔지니어, 빅데이터 과학자를 대상으로 한다. 초보자라면 이 책으로 파이썬을 시작할 수 있으며, 중급 이상이라면 지식 기반을 확장할 수 있다. 프로그래밍에 대한 기본 지식이 있으면 이 책을 읽는 데 도움이 될 것이다.

이 책의 구성

1장. ‘숫자, 문자열, 튜플’에서는 다양한 종류의 숫자를 알아보고, 문자열을 이용해 작업한다. 이어서 튜플과 파이썬의 핵심적인 내장 타입들을 사용한다. 또한 유니코드 문자 집합을 깊이 있게 다룬다.
2장. ‘문장과 구문’에서는 우선 스크립트 파일의 작성에 관한 기초를 소개한다. 그리고 if, while, for, try, with, raise와 같은 복잡한 문장들을 설명한다. 3장. ‘함수 정의’에서는 여러 가지 함수 정의 기법을 살펴본다. 파이썬 3.5의 타이핑 모듈을 살펴보고, 함수에 좀 더 정리된 주석을 작성하는 방법을 설명한다. 4장. ‘내장 자료 구조: list, set, dict’에서는 파이썬에서 사용할 수 있는 다양한 자료 구조들을 설명하고 각각 어떤 문제 해결에 적합한지 소개한다. 그리고 리스트, 딕셔너리, 집합 자료 구조에 대해 자세히 살펴보고, 이와 더불어 파이썬이 객체에 대한 참조를 처리하는 방법과 관련된 고급 주제를 설명한다.
5장. ‘사용자 입력 및 출력’에서는 print() 함수의 여러 기능의 사용 방법을 설명한다. 또, 사용자 입력을 제공하는 다양한 함수를 다룬다.
6장. ‘클래스와 객체의 기초’에서는 다양한 통계 수식을 구현하는 클래스들을 생성한다.
7장. ‘고급 클래스 설계’에서는 파이썬의 클래스에 관해 좀 더 깊이 살펴본다. 6장까지 배운 기능들을 결합해 좀 더 정교한 객체를 생성해본다. 8장. ‘함수형 및 반응형 프로그래밍’에서는 기능 데이터 변환을 수행하는 함수가 짧은 길이로 풍부한 기능을 제공하도록 작성하는 방법을 설명한다. 그리고 반응형 프로그래밍의 개념을 소개한다. 반응형 프로그래밍은 입력을 받거나 입력이 변경될 때, 그에 맞춰 처리되는 규칙이 적용되도록 프로그램을 작성하는 방법론이다.
9장. ‘입출력, 물리적 포맷, 논리적 레이아웃’에서는 JSON, XML, HTML 등의 파일 포맷을 파이썬에서 다루는 방법을 설명한다.
10장. ‘통계 프로그래밍과 선형 회귀’에서는 파이썬의 내장 라이브러리와 자료 구조로 할 수 있는 기본적인 통계 계산을 살펴본다. 상관관계, 임의성, 귀무가설 등의 주제를 다룬다.
11장. ‘테스트하기’에서는 파이썬에서 사용되는 테스트 프레임워크들을 자세히 설명한다.
12장. ‘웹 서비스’에서는 RESTful 웹 서비스의 작성 방법과 정적 또는 동적 콘텐츠를 제공하는 여러 가지 레시피를 살펴본다.
13장. ‘애플리케이션 통합’에서는 대규모의 복잡한 애플리케이션으로 쉽게 결합하기 위한 애플리케이션 설계 방법을 살펴본다. 또한 이렇게 결합된 애플리케이션으로 인해 발생할 수 있는 복잡성에 관해 설명하고, 명령행 파싱과 같은 기능을 집중화해야 할 필요성에 대해서도 다룬다.

저자/역자 소개

지은이의 말

파이썬은 수많은 개발자, 엔지니어, 데이터 과학자, 취미로 개발하는 사람들 모두가 선호하는 프로그래밍 언어며, 애플리케이션에 힘을 불어넣으면서 빠른 속도, 안전성, 확장성을 제공하는 훌륭한 스크립팅 언어다. 이 책에서 제시하는 일련의 레시피를 따라 하면 특정 주제별로 파이썬 언어 기능에 관한 통찰력을 얻을 수 있다. 구체적인 상황에서의 프로그래밍 언어 또는 표준 라이브러리의 기능을 더 쉽게 이해할 수 있기 때문이다.
이 책은 각각의 레시피별로 특정 문제 및 이슈를 해결하는 방법을 보여주는 접근 방식을 취한다.

지은이 소개

스티븐 로트(Steven F. Lott.)

컴퓨터가 크고 비싸며 드물던 70년대부터 프로그래밍을 시작했으며, 프리랜서 소프트웨어 개발자 및 아키텍트로서 다양한 규모의 수많은 프로젝트를 수행했다. 10년 이상 비즈니스 문제를 해결하기 위해 파이썬을 사용해왔다.
현재 파이썬을 활용해 마이크로서비스와 ETL 파이프라인을 구현하고 있으며, 『객체지향 파이썬 프로그래밍』(에이콘, 2017), 『함수형 파이썬 프로그래밍』(에이콘, 2017), 『유쾌한 파이썬』(에이콘, 2015), 『Python Essentials』(packt, 2015) 등을 저술했다.

옮긴이의 말

파이썬은 의심할 여지 없이 현재 가장 많은 관심을 받는 언어 중 하나로, 특히 미국, 영국, 독일에서 가장 빠른 성장세를 보인다. 이와 같은 파이썬의 인기는 소프트웨어 산업 중에서도 매우 빠르게 성장하고 있는 데이터 과학과 인공지능 분야에서 파이썬이 대세가 되고 있는 것과 무관해 보이지 않는다.
파이썬은 문법이 쉽고 직관적이기 때문에 일단 프로토타입을 작성해 실제 동작 여부를 신속히 확인할 수 있다는 큰 장점이 있다. 스크립트 언어라서 속도가 느린 단점은 C로 작성된 라이브러리를 사용해 보완할 수 있으며, 오히려 하드웨어 사양의 급속한 발전으로 퍼포먼스보다 범용성이 더욱 중요하게 여겨지는 시대적 흐름과도 잘 어울린다. 게다가 객체지향이나 함수형 프로그래밍의 장점도 활용할 수 있다.
이 책은 특정 상황별로 파이썬을 사용해 문제 해결법을 보여주는 접근 방식을 취하고 있다. 총 13개의 장으로 구성돼 주제별로 사전 지식 소개, 프로그램 작성 방법, 프로그램의 동작 원리, 추가적인 개선 사항 등을 순서대로 설명한다. 이 책에서 다루는 주제는 자료 구조, 객체지향 특징, 함수형 프로그래밍 기법, 통계 프로그래밍 라이브러리뿐 아니라 테스트 코드 작성, 웹 서비스, 설정 파일 관리, 애플리케이션 통합 등 매우 광범위하다.
이 책은 초심자를 대상으로 하지 않으므로 파이썬 언어의 구문을 기초부터 설명하지는 않는다. 독자들이 어느 정도 파이썬 지식을 갖췄다고 전제하므로, 필요하다면 다른 입문서와 함께 읽는 것이 도움이 될 수 있다. 또한 상황별로 문제 해결책을 제시하고 있어, 굳이 처음부터 읽지 않고 필요한 부분만 선택적으로 읽어도 무방하다.

옮긴이 소개

이정문

컴퓨터공학을 전공했으며 다수의 원서를 번역했다. 번역서로는 에이콘출판사에서 펴낸 『비기닝 ANSI C++』(2008), 『데이터 과학으로 접근하는 정보보안』(2016), 『파이썬 플레이그라운드』(2016) 등이 있다.

목차

목차
  • 1장. 숫자, 문자열, 튜플
    • 소개
    • 변수에 유의미한 이름을 부여하는 방법
    • 크고 작은 정수를 다루는 방법
    • float, Decimal, Fraction의 구별
    • 실수 나눗셈과 정수 나눗셈의 구별
    • 변경 불가능 객체인 문자열을 재작성하는 방법
    • 정규 표현식을 사용한 문자열 파싱
    • template.format()으로 문자열을 생성하는 방법
    • 문자 리스트로부터 문자열을 생성하는 방법
    • 키보드로 입력할 수 없는 유니코드 문자를 사용하는 방법
    • 문자열 인코딩: ASCII와 UTF-8 바이트를 생성하는 방법
    • 바이트 디코딩: 바이트로부터 문자를 알아내는 방법
    • 튜플을 사용하는 방법

  • 2장. 문장과 구문
    • 소개
    • 스크립트와 모듈 파일을 작성하는 방법
    • 긴 줄 코드를 작성하는 방법
    • 설명과 문서화를 포함하는 방법
    • 문서화 문자열에 RST 마크업을 효과적으로 사용하는 방법
    • 복잡한 if...elif 체인을 설계하는 방법
    • 정상 종료되는 while문을 설계하는 방법
    • break문으로 인한 문제 발생을 예방하는 방법
    • 예외 매칭 규칙을 활용하는 방법
    • except: 절로 인한 문제를 예방하는 방법
    • raise from문으로 예외들을 연결하는 방법
    • with문으로 컨텍스트를 관리하는 방법

  • 3장. 함수 정의
    • 소개
    • 선택적 매개변수를 갖는 함수를 설계하는 방법
    • 매우 유연한 키워드 매개변수를 사용하는 방법
    • * 구분자로 키워드 전용 인수를 지정하는 방법
    • 함수의 매개변수에 명시적으로 타입을 지정하는 방법
    • 부분 함수로 매개변수의 순서를 선택하는 방법
    • 함수의 문서화 문자열에 RST 마크업을 사용하는 방법
    • 파이썬의 스택 제한과 관련한 재귀 함수 설계
    • 스크립트 라이브러리 전환으로 재사용 가능한 스크립트를 작성하는 방법

  • 4장. 내장 자료 구조: 리스트, 세트, 딕셔너리
    • 소개
    • 최적의 자료 구조를 선택하는 방법
    • 리스트를 생성하는 방법: 리터럴, 추가, 내포
    • 리스트 슬라이싱
    • 리스트에서 항목을 삭제하는 방법: del, remove, pop, filter
    • 리스트 항목들의 순서를 반대로 만드는 방법
    • 세트의 메소드와 연산자
    • 세트에서 항목을 제거하는 방법: remove, pop, difference
    • 딕셔너리를 만드는 방법: 삽입과 갱신
    • 딕셔너리에서 항목을 제거하는 방법: pop 메소드와 del문
    • 딕셔너리 키의 순서를 제어하는 방법
    • doctest 예제에서 딕셔너리와 세트를 사용하는 방법
    • 변수, 참조, 대입에 대한 이해
    • 얕은 복사와 깊은 복사
    • 함수 매개변수의 기본값으로 변경 가능 객체를 피하는 방법

  • 5장. 사용자 입력과 출력
    • 소개
    • print() 함수의 기능들을 사용하는 방법
    • input()과 getpass()로 사용자 입력을 받는 방법
    • format.format_map(vars())를 사용하는 디버깅 방법
    • argparse로 명령행 입력을 받는 방법
    • cmd를 사용해 명령행 애플리케이션을 작성하는 방법
    • 운영체제의 환경 설정을 사용하는 방법

  • 6장. 클래스와 객체의 기초
    • 소개
    • 클래스를 사용해 데이터와 연산을 캡슐화하는 방법
    • 연산 처리 위주의 클래스를 설계하는 방법
    • 연산 처리를 거의 수행하지 않는 클래스를 설계하는 방법
      • slots 로 객체를 최적화하는 방법
    • 좀 더 정교한 컬렉션 자료 구조들
    • 컬렉션 확장하기: 통계 값을 계산하는 리스트
    • 프로퍼티로 지연 계산을 구현하는 방법
    • 설정 가능 프로퍼티로 속성 값을 갱신하는 방법

  • 7장. 고급 클래스 설계 기법
    • 소개
    • 확장과 래핑 간의 비교
    • 다중 상속을 통한 관심사 분리
    • 덕타이핑을 사용하는 방법
    • 전역 싱글턴 객체를 관리하는 방법
    • 복잡한 자료 구조 사용하기: 리스트를 포함하는 매핑
    • 객체를 정렬할 수 있는 클래스를 작성하는 방법
    • 정렬된 컬렉션을 정의하는 방법
    • 딕셔너리의 리스트에서 항목을 삭제하는 방법

  • 8장. 함수형 및 반응형 프로그래밍
    • 소개
    • yield문으로 제네레이터 함수를 작성하는 방법
    • 제네레이터식을 조합해 사용하는 방법
    • 데이터 컬렉션에 변환 처리를 적용하는 방법
    • 부분 집합 선택하기: 세 가지 필터링 방법
    • 데이터 컬렉션을 요약하는 방법: 리듀스
    • 맵과 리듀스를 조합하는 방법
    • ‘there exists’ 처리를 구현하는 방법
    • 부분 함수를 작성하는 방법
    • 변경 불가능한 자료 구조를 사용해 알고리즘을 단순화하는 방법
    • yield from문으로 재귀 제네레이터 함수를 작성하는 방법

  • 9장. 입출력, 물리적 포맷, 논리적 레이아웃
    • 소개
    • pathlib 모듈을 사용해 파일명을 다루는 방법
    • 컨텍스트 매니저로 파일을 읽고 쓰는 방법
    • 이전 버전을 보존하면서 파일을 대체하는 방법
    • CSV 모듈을 사용해 구분자를 갖는 파일을 읽는 방법
    • 정규 표현식을 사용해 복잡한 포맷을 읽는 방법
    • JSON 문서를 읽는 방법
    • XML 문서를 읽는 방법
    • HTML 문서를 읽는 방법
    • CSV를 DictReader에서 네임드튜플 리더로 업그레이드하는 방법
    • CSV를 DictReader에서 네임스페이스 리더로 업그레이드하는 방법
    • 다중 컨텍스트를 사용해 파일을 읽고 쓰는 방법

  • 10장. 통계 프로그래밍과 선형 회귀
    • 소개
    • 내장 통계 라이브러리를 사용하는 방법
    • 카운터에 포함된 값들의 평균
    • 상관계수를 계산하는 방법
    • 회귀 매개변수를 계산하는 방법
    • 자기 상관관계를 계산하는 방법
    • 데이터의 무작위성을 확인하기: 귀무가설
    • 이상치를 찾아내는 방법
    • 1-패스로 다수의 변수를 분석하는 방법

  • 11장. 테스트
    • 소개
    • 닥스트링을 테스트에 활용하는 방법
    • 예외를 발생시키는 함수를 테스트하는 방법
    • doctest와 관련된 문제들을 해결하는 방법
    • 테스트 모듈과 패키지를 별도로 생성하는 방법
    • unittest 테스트와 doctest 테스트를 함께 사용하는 방법
    • 날짜 또는 시간과 관련된 테스트
    • 무작위성을 포함하는 테스트
    • 외부 자원을 모방하는 방법

  • 12장. 웹 서비스
    • 소개
    • WSGI로 웹 서비스를 구현하는 방법
    • 플라스크 프레임워크를 사용하는 방법
    • 질의 문자열을 파싱하는 방법
    • urllib으로 REST 요청을 생성하는 방법
    • URL 경로를 파싱하는 방법
    • JSON 요청을 파싱하는 방법
    • 웹 서비스 인증을 구현하는 방법

  • 13장. 애플리케이션 통합
    • 소개
    • 설정 파일을 찾는 방법
    • YAML 설정 파일을 사용하는 방법
    • 설정 파일에 파이썬을 사용하는 방법
    • 네임스페이스로서 클래스를 사용하는 설정 방법
    • 합성 관계를 위한 스크립트를 설계하는 방법
    • 제어 및 감사를 위해 로깅하는 방법
    • 두 개의 애플리케이션을 하나로 합치는 방법
    • 커맨드 디자인 패턴을 사용해 애플리케이션들을 합치는 방법
    • 합성 애플리케이션에서 인수와 설정을 관리하는 방법
    • 명령행 인터페이스 애플리케이션들을 감싸고 합치는 방법
    • 내부로 포함된 프로그램의 결과 값을 검사하는 방법
    • 많은 단계들로 이뤄진 복잡한 시퀀스를 제어하는 방법

관련 블로그 글

파이썬을 사용한다면 꼭 필요한 문제별 맞춤 솔루션





파이썬은 네덜란드 개발자 귀도 반 로섬(Guido van Rossum)이 만든 언어로,

C 언어를 기반으로 빠른 속도, 안정성, 확장성을 제공하는 오픈소스 프로그래밍 언어다.

 

문법이 간결하고 직관적이기 때문에 초보자도 쉽게 배울 수 있는데,

그 때문에 수많은 개발자, 엔지니어, 데이터 과학자, 취미로 개발하는 사람 등 모두가 선호하는 프로그래밍 언어기도 하다.

 



 파이썬의 특징


 간결한 문법으로 입문자가 이해하기 쉽다.

 라이브러리가 풍부해 다양한 용도로 확장할 수 있다.

 프로토타입을 작성해 실제 작동 여부를 바로 확인할 수 있다.

 라이브러리를 사용해 린 속도를 보완할 수 있다.

유지보수 및 관리가 쉽다.

 높은 가독성과 생산성


 



파이썬은 현재 가장 많은 관심을 받는 언어 중 하나이며,

누구든 쉽게 배울 수 있고 필요한 목적에 따라 다양하게 활용할 수 있기 때문에

웹 개발뿐만 아니라 데이터 분석, 머신 러닝, 그래픽, 학술 연구 등 여러 분야에서 활용되고 있다

또한 파이썬은 대형 글로벌 기업부터 스타트업까지 다양하고 안정적으로 활용되고 있으며,

여러 업계에서 선호하는 언어로 꾸준히 성장하고 있다.

 

 






이미 파이썬의 기초와 활용을 다루는 책은 많다.

하지만 실제로 파이썬을 사용하면서 맞닥뜨릴 수 있는 상황을 제시하고 해결 방법을 알려주는 책은 많지 않다.

이 책은 기초 개념부터 복잡한 응용까지 광범위한 파이썬 3 프로그램 구현 방법을 설명한다.

자료 구조, 객체지향, 함수형 프로그래밍, 통계 프로그래밍 등 주제별로 효율적인 파이썬 프로그래밍 기법을 다루고 있다.



웹 개발자, 프로그래머, 엔터프라이즈 프로그래머, 엔지니어, 빅데이터 과학자를 대상으로 하며,

각각의 레시피별로 특정 문제 및 이슈를 해결하는 방법을 보여주는 접근 방식을 취하고 있어

상황 별로 문제 해결책을 제시하고 있기 때문에 굳이 처음부터 읽지 않고 필요한 부분만 선택적으로 읽어도 무방하다.



이 책에서 제시하는 일련의 레시피를 따라 하면서 구체적인 상황에서의 프로그래밍 언어 도는 표준 라이브러리의 기능을 더 쉽게 이해할 수 있으며,

특정 주제별로 파이썬 언어 기능에 관한 통찰력을 얻을 수 있다.

보자라면 이 책으로 파이썬을 시작할 수 있으며, 중급 이상이라면 지식 기반을 확장할 수 있다.


준비가 됐다면, <모던 파이썬 쿡북>과 함께 즐겁게 파이썬 개발을 시작해보자!



모던 파이썬 쿡북은 아래의 인터넷서점에서 만나실 수 있습니다

CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안