Top

코어 파이썬 애플리케이션 프로그래밍 Core Python Applications Programming Third Edition

  • 원서명Core Python Applications Programming Third Edition (ISBN 9780132678209)
  • 지은이웨슬리 천
  • 옮긴이오현석, 서형국
  • ISBN : 9788960775213
  • 50,000원
  • 2014년 01월 29일 펴냄 (절판)
  • 페이퍼백 | 964쪽 | 188*250mm

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

요약

파이썬 언어 입문서를 하나쯤 마친 프로그래머라면 누구나 배운 것을 어디에 써먹을 수 있을지 고민할 것이다. 십여 년간 파이썬 관련 커뮤니티에서 저술가로 활약해온 저자 웨슬리 천이 쓴 이 책은 초중급 독자가 실전에 활용할 수 있도록 정규식, 스레드 프로그래밍, GUI, 네트워크 프로그래밍, 장고, 구글 앱 엔진 등 다양한 분야를 다룬다. 이 책은 광범위한 분야를 다루면서도, 실전에서 활용할 수 있는 살아있는 예제를 상세히 설명함으로써 독자들이 다양한 분야를 잘 이해할 수 있게 도와준다. 또한 이 책은 여러 가지 파이썬 프로그래밍 주제를 공부하는 시작점이 될 수 있다. 각 장 말미에 있는 연습문제를 풀어본다면 각 분야를 더 깊이 이해하는 동시에 프로그래머로서의 역량을 크게 키울 수 있다.

이 책에서 다루는 내용

■ 프로들의 파이썬 스타일, 모범 사례, 좋은 프로그래밍 습관을 배운다.
■ TCP, UDP, XML-RPC를 사용해 서버와 클라이언트를 만들고, SocketServer나 Twisted 같은 하이레벨 라이브러리를 접한다.
■ Tkinter나 다른 GUI 툴킷을 사용해 애플리케이션을 개발한다.
■ C/C++로 확장 모듈을 작성해 앱 성능 향상을 꾀하고, 멀티스레드를 사용해 I/O 기반 코드 성능을 향상시킨다.
■ SQL과 RDBMS, ORM, 몽고디비(MongoDB) 같은 비관계형(No-SQL) 데이터베이스를 활용해본다.
■ 웹 클라이언트, 서버, CGI, WSGI 등의 웹 프로그래밍에 대해 배운다.
■ 정규식을 다루고, CSV, JS ON, XML 등을 파싱하거나 만들 수 있는 강력한 텍스트 처리 도구를 사용해본다.
■ COM 클라이언트 프로그래밍을 통해 엑셀, 파워포인트, 아웃룩 등의 마이크로소프트 오피스 애플리케이션을 제어한다.
■ 장고 프레임워크와 구글 앱 엔진을 사용한 웹 개발의 세계에 깊이 빠져들어 본다.
■ 자이썬(Jython)을 활용해 파이썬 코드를 JVM에서 실행하고, 자바와 함께 사용한다.
■ 야후! 금융 서비스 같은 웹 서비스에 접속해 주식 시세를 얻거나, 야후! 메일, 지메일 등에 접속해 이메일을 보내고 받는다.
■ 트위터, 구글플러스 등의 널리 쓰이는 소셜 네트워크를 접속해 사용하는 방법을 배운다.

이 책의 대상 독자

이 책은 이미 파이썬을 알고 있지만 더 깊이 파이썬을 알고자 하며, 애플리케이션 개발 기술을 더 향상시키기를 바라는 사람을 대상으로 한다.
엔지니어링, 정보기술, 과학, 비즈니스, 엔터테인먼트 등 다양한 분야에서 다음과 같은 종사자들이 파이썬을 사용하고 있다.

■ 소프트웨어 엔지니어
■ 하드웨어 설계/CAD 엔지니어
■ QA/테스팅과 자동화 프레임워크 개발자
■ IS/IT/시스템과 네트워크 관리자
■ 과학자와 수학자
■ 기술 스태프 또는 프로젝트 관리자
■ 멀티미디어 또는 음향/영상 엔지니어
■ SCM 또는 배포 엔지니어
■ 웹 마스터와 콘텐츠 관리 스태프
■ 고객/기술 지원 엔지니어
■ 데이터베이스 엔지니어와 관리자
■ 연구 개발 엔지니어
■ 소프트웨어 통합 및 전문 서비스 스태프
■ 대학과 고등 교육 교원
■ 웹 서비스 엔지니어
■ 재무 소프트웨어 엔지니어
■ 기타 분야 종사자
파이썬을 사용하는 유명한 회사로는 구글, 야후, 미국 항공우주국(NASA), 디즈니, 픽사(PIXAR),루카스필름/ILM(Industrial Lights and Magic) , 레드햇, 조프(Zope), 드림웍스 등이 있다.

이 책의 구성

이 책은 크게 3개 부로 나뉜다. 이 책의 3분의 2를 차지하는 I부는 어떤 애플리케이션을 개발하든 활용 가능한 도구의 핵심 요소들을 (물론 파이썬에 초점을 두고) 설명한다. II부는 웹 프로그래밍과 연관된 여러 부분을 다룬다. III부는 현재 개발 중인 실험적인 내용을 다룬다. 아무쪼록 이 III부에서 다루는 주제들은 향후 각각 개별 단원으로 다룰 수 있을 만큼 더 성장하기를 바란다.

세 부 모두 파이썬을 활용해 어떤 일을 할 수 있는지 보여주는 다양한 고급주제를 제공한다. 여러분이 파이썬 개발의 여러 핵심 영역에 쉽게 입문하는 데 도움이 된다면 더 없이 기쁠 것이다
. 다음은 각 장에 대한 자세한 안내다.

I부: 애플리케이션 개발 일반

1장 ‘정규식’: 패턴 매칭, 추출, 검색, 치환 기능이 필요할 때 사용할 수 있는 강력한 도구인 정규식을 설명한다.

2장 ‘네트워크 프로그래밍’: 오늘날 수많은 애플리케이션이 네트워크와 연동돼야 한다. 2장은 TCP/IP와 UDP/IP를 사용해 클라이언트와 서버를 만드는 방법과 SocketServer와 Twisted에 대해 다룬다.

3장 ‘인터넷 클라이언트 프로그래밍’: 대부분의 인터넷 프로토콜은 소켓을 사용해 개발된다. 3장에서는 클라이언트를 만들 때 사용되는 하이레벨 라이브러리에 대해 다룬다. 특히 파일 전송 프로토콜(FTP, File Transfer Protocol)과 유즈넷 뉴스 프로토콜(NNTP, Usenet News Protocol), 그리고 다양한 이메일 프로토콜(SMTP, POP3, IMAP4)을 다룬다.

4장 ‘멀티스레드 프로그래밍’ 멀티스레드 프로그래밍은 동시성을 도입해 여러 애플리케이션의 실행 성능을 향상시키는 방법이다. 4장은 그 개념을 설명하고, 파이썬 멀티스레드 애플리케이션을 어떻게 만들 수 있는지를 보여주며, 가장 좋은 용례를 설명함으로써 파이썬으로 스레드를 구현하는 법을 알려준다.

5장 ‘GUI 프로그래밍’: Tk 그래픽 툴킷인 Tkinter(파이썬 3에서는 tkinter로 이름이 바뀜)는 파이썬의 기본 GUI 개발 라이브러리다. 5장에서는 간단한 GUI 애플리케이션을 만드는 방법을 통해 Tkinter를 소개한다. Tkinter를 배우는 가장 좋은 방법은 이 예제를 가지고 다른 프로그램을 만들어 보는 것이다. 그렇게 하면 빠른 시일 내에 제대로 감을 잡을 수 있을 것이다. 다음으로 Tix, Pmw, wxPython, PyGTK, Ttk/Tile 등 여러 가지 그래픽 라이브러리를 살펴본다.

6장 ‘데이터베이스 프로그래밍’: 파이썬을 사용하면 데이터베이스 프로그래밍도 쉽게 할 수 있다. 우선 기본 개념을 살펴보고, 파이썬 데이터베이스 APIDB-API를 소개한다. 그 후 파이썬을 사용해 관계형 데이터베이스에 접속하는 방법과 질의(쿼리)와 연산을 수행하는 방법을 살펴본다. SQL(Standard Query Language)을 사용하는 방식에서 벗어나 데이터베이스 계층에는 신경 쓰지 않고 객체를 대상으로 작업하려 한다면 객체-관계형 데이터베이스 관리자(ORM, Object Relational Manager)를 쓸 수 있다. 마지막으로 NoSQL 예제인 몽고디비(MongoDB)를 통해 비관계형 데이터베이스의 세계를 맛본다.

7장‘마이크로소프트 오피스 프로그래밍’우리는 호불호와 관계없이 마이크로소프트 윈도우 기반 PC를 사용해야 할 때가 온다. 매일 쓸 수도 있고, 가끔 한 번씩 사용할 수도 있다. 어떤 경우이든 파이썬을 사용하면 더 편하게 작업할 수 있다. 7장에서는 파이썬을 사용해 워드, 엑셀, 파워포인트, 아웃룩 같은 오피스 프로그램과 통신하거나 제어하기 위한 COM 클라이언트 프로그래밍을 살펴본다. 이 부분은 2판에서는 실험적인 내용이었다. 별도의 장으로 독립시켜도 될 만큼 추가할 내용이 많아져 기쁘다.

8장 ‘파이썬 확장’: 앞에서 코드를 재활용하고 언어를 확장할 수 있다는 것이 얼마나 강력한 것인지 언급했다. 순수한 파이썬에서는 모듈과 패키지를 통해 언어를 확장한다. 하지만 C/C++, C#, 자바 등을 사용해 로우레벨 코드를 개발할 수도 있다. 로우레벨 프로그래밍 언어를 사용해 확장 모듈을 작성하면 추가적인 성능 향상과 보안성(소스코드가 드러나지 않기 때문에)을 확보할 수 있다. 8장은 C를 사용한 파이썬 확장 모듈 개발 과정을 단계별로 설명한다.

II부: 웹 개발

9장 ‘웹 클라이언트와 서버’: 2장에서 논의한 클라이언트-서버 구조를 확장해서 그 개념을 웹에 적용한다. 9장에서는 클라이언트, 다양한 웹 클라이언트 도구, 웹 콘텐츠 파싱, 웹 서버를 파이썬을 사용해 커스텀화하는 방법 등을 소개한다.

10장 ‘웹 프로그래밍: CGI와 WSGI’: 웹 서버의 주목적은 클라이언트 요청을 받아 결과를 반환하는 것이다. 하지만 어떻게 서버가 그 (결과) 데이터를 얻어낼 수 있을까? 웹 서버는 정적인 결과를 반환하는 작업에만 특화돼 있어 결과를 계산하기 위한 능력이나 논리를 갖고 있지 않다. 따라서 중요한 작업은 어딘가 다른 곳에서 이뤄져야 한다. 서버가 이런 처리를 위해 다른 프로그램을 실행하는 CGI는 이런 문제에 대한 해답이었다. 하지만 CGI는 확장성이 떨어져 실용적으로는 거의 사용되지 못했다. 하지만 개념 자체는 여러분이 사용하는 프레임워크와 상관없이 항상 적용 가능하다. 따라서 10장의 대부분을 CGI에 할애할 것이다. 또한 웹 서버와 애플리케이션 코드를 연결해야 하는 개발자들이 WSGI API를 사용해 얼마나 편하게 작업할 수 있는지 살펴볼 것이다. 개발자들은 이를 사용해 실행 플랫폼을 걱정하지 않고 코드를 작성할 수 있다.

11장 ‘웹 프레임워크: 장고’: 장고(Django)가 가장 유명한 웹 프레임워크 중 하나가 되면서 파이썬은 웹 호스트 언어로 등장했다. 11장에서는 장고 프레임워크를 소개한 후 간단한 웹 애플리케이션을 작성하는 방법을 살펴본다. 그 후 여러분이 원하는 다른 프레임워크도 탐험해 나갈 수 있을 것이다.

12장 ‘클라우드 컴퓨팅: 구글 앱 엔진’: 클라우드 컴퓨팅은 오늘날 업계의 태풍의 눈이다. 이미 아마존(Amazon)의 AWS 같은 인프라 서비스나 지메일(Gmail)이나 야후! 메일과 같은 온라인 애플리케이션은 세계적으로 널리 알려져 있다. 하지만 인프라 서비스가 제공하는 여러 혜택을 사용자 개입 없이 제공하면서도 더 유연한 플랫폼이 강력한 대안으로 떠오르고 있다. 플랫폼에서는 개발자가 애플리케이션과 코드를 직접 제어할 수 있기 때문이다. 12장에서는 파이썬을 사용한 첫 번째 플랫폼 서비스인 구글 앱 엔진을 자세히 소개한다. 이를 잘 알면 이와 유사한 다른 서비스도 파악할 수 있다.

13장 ‘웹서비스’: 13장에서는 (HTTP를 사용하는) 웹 기반 하이레벨 서비스에 대해 살펴본다. 오래된 서비스(야후! 금융)를 살펴보고, 새로운 서비스(트위터)도 살펴본다. 이런 서비스를 파이썬과 앞에서 배운 지식을 사용해 다루는 방법도 배운다.

III부: 보충/실험

14장 ‘텍스트 처리’: 14장에서는 파이썬을 사용한 텍스트 처리를 소개한다. 우선 CSV를 살펴보고, JSON, XML을 다룬다. 마지막 부분에서는 이 책의 앞에서 배운 클라이언트/서버 지식을 XML과 결합해서 XML-RPC를 사용한 온라인 원격 프로시저 호출(RPC, Remote Procedure Call)을 만드는 방법을 살펴본다.

15장 ‘그 밖의 주제’: 15장은 다음 개정판에서 별도의 장으로 다룰 수 있게 될 가능성이 있는 추가적 내용으로 구성돼 있다. 여기서 다루는 주제는 자바/자이썬(Jython)과 구글플러스 등이다.

이 책에 쏟아진 각계의 찬사

간략하면서도 주제를 자세하고 폭넓게 다루며 유용한 역사적, 참고 목록을 제공하기 때문에 교재로서 완벽한 책이다. 복잡한 예제를 간단하게 설명함으로써 매우 읽기 쉬우면서도 초급서에서는 찾아보기 힘든 훌륭한 역사적인 참고 목록을 제공한다. 놀라울 뿐이다!
- 글로리아 W

웨슬리 천의 책을 기다려온 그 긴 시간이 아깝지 않다. 이 책은 매우 다양한 분야를 깊이 다룬다. 책에서 제공되는 연습문제는 파이썬을 잘 배우는 데 도움이 될 것이다.
- 알렉스 마텔리(Alex Martelli)/『Python in a Nutshell』의 저자이자 『Python Cookbook』의 편집자

웨슬리 천의 새 개정판에 대한 풍문이 많이 들려왔다. 이 책은 큰 관심을 끌 만한 책이 틀림없음이 판명됐다. 오늘날 파이썬을 배우려는 사람에게 이 책은 가장 좋은 교재라 생각한다.『Learning Python』O’Reilly), 『Programming Python』(O’Reilly), 『The Quick Python Book』(Manning)보다도 웨슬리 천의 이 책을 더 강력히 추천한다.
- 데이빗 머츠(David Mertz)/공학박사, IBM 디벨로퍼웍스

지난 몇 년간 파이썬에 대해 많이 연구해 왔으며 웨슬리 천의 책에, 대해서도 몇 가지 긍정적인 리뷰를 해왔습니다. 여러 평을 볼 때 이 책은 이제 파이썬의 실질적인 필수 개론서로 자리매김했음을 확인할 수 있습니다.
- 리차드 오자키(Richard Ozaki)/록히드 마틴(Lockheed Martin)

마침내 파이썬 언어에 대한 교재와 참고서 역할을 동시에 충분히 할 수 있는 책이 나타났다.
- 마이클 박스터(Michael Baxter)/리눅스 저널

아주 잘 쓴 책이다. 내가 지금까지 보아 온 파이썬을 설명하는 책 중에서 가장 명확하고 친절하다. 책을 읽는 데 필요한 선수 지식이나 경험을 많이 요구하지도 않는다. 파이썬에 대한 중요한 주제가 있으면 조심스럽게 접근하되 깊이 파고든다. 다른 입문서와 달리 독자에게 세부 사항을 숨기거나 장황하게 설명해 알아듣기 어렵게 만들지 않는다.
(이 책은)파이썬 문법과 구조에 대해 확실히 이해하게 만드는 일에만 집중한다.
- http://python.org 도서 소개 페이지

내가 파이썬 책을 한 권만 가질 수 있다면 그것은 바로 웨슬리 천의 이 책일 것이다.
이 책은『Learning Python』보다 더 많은 내용을 더 깊이 다루는 한편 핵심 언어를 충분히 다루면서도 한 권에 넣는 데 성공했다. 서점에서 파이썬 책을 단 한 권만 사고자 하는 사람이라면 이 책을 추천한다. 이 책의 내용과 책에 담긴 프로그래머의 위트를 재미있게 읽게 될 것이다. 더 중요한 점은 파이썬을 차근차근 배워 나갈 수 있다는 점이다. 더더욱 중요한 점은 매일 매일의 파이썬 프로그래밍 생활에 있어서 이 책이 값을 매길 수 없을 정도로 도움이 되리라는 사실이다. 저자에게 감사를 표하는 바이다.
- 론 스티븐(Ron Stephens)/파이썬 배움 재단(Python Learning Foundation)

의심할 여지없이, 초보자를 위한 최고의 언어는 파이썬이라 생각한다. 내가 가장 좋아하는 책은 바로 이 책이다.
- s003멕/MP3Car.com 포럼

개인적으로 정말 파이썬을 좋아한다. 파이썬은 배우기 쉽고 매우 직관적이며, 놀랄 만큼 유연하면서도 끝내주게 빠르다. 윈도우 세계에서 파이썬의 인지도가 높아지기 시작한 것은 얼마 안 되지만, 사람들이 파이썬을 알아감에 따라 많은 지지를 받고 있다. 나라면 파이썬을 배울 때 웨슬리 천의 이 책 『코어 파이썬 애플리케이션프로그래밍』으로 시작하겠다.
- 빌 보스웰(Bill Boswell)/MCSE, 마이크로소프트 인증 프로페셔널 매거진 온라인(Microsoft Certified Professional Magazine Online)

책으로 익히는 데 능한 사람이라면 이 책을 추천한다. 내가 본 책 중 단연 뛰어난 책이다. 나는 파이썬 초보자이지만, 겨우3개월 만에 직장의 프로젝트(MS 오피스 자동화, SQL DB 관련 등)를 파이썬으로 구현할 수 있었다.
- ptonman/데브 셰드(Dev Shed) 포럼

파이썬은 정말 아름다운 언어다. 배우기 쉽고, 크로스플랫폼이며, 잘 작동한다. 파이썬은 자바가 달성하려고 시도한 여러 기술적인 목표를 이뤄왔다. “다른 모든 언어는 시간에 따라 진화하는 것 같지만 파이썬은 설계되었다.”라는 말이 파이썬이라는 언어를 가장 잘 표현한다. 게다가 파이썬은 잘 설계된 언어다. 불행하게도 파이썬에 대한 책은 많지 않다. 지금까지 내가 본 책 중에 가장 좋은 책은 바로 이 책 『코어 파이썬 애플리케이션 프로그래밍』이다.
- 크리스 티몬스(Chris Timmons)/C. R. 티몬스 컨설팅

프렌티스홀 출판사의 코어 파이썬 시리즈를 좋아한다면 고려해 볼만한 좋은 책이 바로 이 책『코어 파이썬 애플리케이션 프로그래밍』이다. 이 책은 다른 책에서는 거의 다루지 않거나 조금만 다루는 여러 실용적인 주제를 구체적 세부 사항까지 공들여 설명한다.
- 미첼 L. 모델/MLM 컨설팅

저자/역자 소개

저자 서문

‘코어 파이썬 애플리케이션 프로그래밍 3판’을 선택한 독자 여러분을 환영합니다!
이 책을 통해 여러분은 파이썬을 가능한 한 빠르고 자세히 배울 수 있다. 코어 파이썬 시리즈의 목표는 개발자들에게 파이썬 언어만을 가르치는 것이 아니다. 우리는 독자들이 모든 응용 영역에서 소프트웨어를 개발하기에 충분한 기반 지식을 쌓을 수 있기를 원한다.

코어 파이썬 시리즈 중 『코어 파이썬 프로그래밍(Core Python Programming)』과 『코어 파이썬 언어 기초(Core Python Language undamentals)』에서 파이썬 언어의 문법 지식뿐 아니라 파이썬이 내부적으로 어떻게 동작하는지에 대해 자세한 지식을 전달하기 위해 노력했다. 이런 지식을 갖춘 독자라면 성별이나 학습량과 관계없이 더 효과적으로 파이썬 애플리케이션을 작성할 수 있으리라 믿는다.

이런 기초 파이썬 서적 중 한두 권을 마무리한 독자는 자신이 파이썬을 제대로 배워왔다는 데 만족할 수 있을 것이다. 연습문제를 많이 풀었다면 새로 배운 파이썬 코딩 기술에 상당히 자신이 생겼을 수도 있다. 하지만 여전히 궁금증이 남아 있을 것이다. “이제 무얼 하지? 파이썬으로 어떤 종류의 애플리케이션을 만들 수 있지?” 특정 프로젝트의 제한된 범위에서만 사용하기 위해 파이썬을 배운 독자라면 이런 질문을 할 수도 있다. “이제는 내가 파이썬으로 다른 어떤 걸 할 수 있지?”

저자 소개

웨슬리 천(Wesley J.Chun)

고등학교 때 코모도어 시스템에서 베이직과 어셈블리 6502 언어로 컴퓨터 세계에 입문했다. 그 후 애플 IIe에서 파스칼을 공부하고, 펀치카드로 포트란Fortran을 공부했다. 펀치카드 묶음을 학교 메인프레임 실에 보내고 그 실행 결과를 얻는 데 통틀어 일주일이 소요됐기 때문에 주의 깊고 조심스러운 개발자가 돼야만 했다. 또한 그는 저널리즘 수업에서 타자기 대신 오스본 1 CP/M 컴퓨터를 사용하게 만들었다. 학생이면서도 4, 5, 6학년과 학부모들에게 베이직 언어를 가르친 것이 그의 첫 일거리였다.

고등학교 졸업 후 웨슬리는 캘리포니아 동문 장학생으로 버클리 캘리포니아 주립대학에 진학했다. 응용수학(전산)학사학위를 취득했고, 부전공으로 음악(고전 피아노)을 이수했다. 대학에서는 파스칼, 로고, C언어를 배웠다. 또한 비디오를 통한 훈련과 심리 상담 같은 것으로 이뤄진 교습 과정도 이수했다. 여름 인턴쉽 과정 중에는 4GL 코딩을 경험하고, ‘처음 시작하기(Getting Started)’ 사용자 매뉴얼을 작성했다. 몇 년 후 산타 바바라 캘리포니아 주립대학에서 전산학(분산 시스템)석사학위를 받았으며,그곳에 있는 동안C언어를 가르쳤다. 석사학위 논문을 바탕으로 쓴 논문이 29차 HICSS 학회 최고 논문상에 지명됐으며, 싱가포르 대학의 「고성능 컴퓨팅 저널(Journal of High Performance Computing)」에 그 이후의 버전이 실렸다.

졸업 후에는 소프트웨어 산업계에 몸담으며, 계속 교육과 저술 활동을 해 왔다. 여러 권의 책을 집필했으며,대중과 기업을 대상으로 수많은 컨퍼런스 발표, 튜토리얼, 파이썬 교육 과정을 제공해 왔다. 그가 파이썬을 사용하기 시작한 것은 한 벤처기업에서 파이썬 1.4버전으로 야후!메일 철자 검사기와 주소록을 만들면서부터다. 그 후 야후! 인명 검색의 최고 엔지니어가 됐다. 야후!를 떠난 다음에는 이 책의 초판을 쓰고 세계 곳곳을 다녔다. 다시 미국에 돌아온 다음에는 파이썬을 로컬 제품 검색 스팸 방지와 바이러스 방지 이메일 도구 페이스북 게임/애플리케이션 등의 분야에서 사용해 왔으며, 의사들의 척추 골절 분석을 돕는 소프트웨어도 파이썬으로 개발했다.

여가시간에는 피아노, 볼링, 농구, 자전거, 얼티밋 프리스비(ultimate Frisbee), 포커, 여행 등을 즐기고, 가족과 시간을 보낸다. 또한 파이썬 사용자 그룹, 튜터 메일링 리스트, 파이컨(PyCon) 등을 자발적으로 돕고 있다. 또한 알란 파슨스 프로젝트 몬스터(Alan Parsons Project Monster)의 음반도 소장하고 있다. ‘Freudiana’를 찾는 알란 파슨스의 팬이라면 그에게 문의하시길! 이 책을 쓰는 현재, 웨슬리는 구글의 개발자 홍보대사(Developer Advocate)로서 구글의 클라우드 제품을 소개하는 일을 하고 있다. 그의 집은 실리콘밸리에 있다.

옮긴이의 말

빅 데이터가 소위 ‘뜨거운’ 이슈가 되면서 최근 새롭게 조명을 받는 언어 중 하나가 파이썬이다. 물론 파이썬 자체는 이미 C나 C++, 자바와 더불어 세계적으로 널리 쓰이는 대중화된 언어 중 하나란 점에서 새삼스럽기는 하다. 이 분야에서 파이썬이 각광을 받는 이유를 들자면 프로그래밍 공부에 시간을 투자할 만한 시간을 내기 어려운 데이터 과학자들에게 배우기 쉬우면서도, 데이터의 전처리와 후처리에 필요한 다양한 기능을 제공하고, 필요한 경우 다른 언어나 모듈들과 통합해 사용하기 쉽다는 점 등 여러모로 장점이 많은 언어이기 때문이리라.
이런 장점은 바로 일반 독자에게도 적용 가능하다. 실제 개발에서 파이썬을 사용하고 있는 개발자는 물론이지만, 다른 언어를 주로 쓰는 개발자라도 필요한 도구를 간단하게 개발하거나 프로토타입을 만들어야 할 필요가 있을 때 파이썬은 유용한 도구가 된다. 파이썬은 또한 프로그래밍을 처음 배우는 사람이 배우기 쉽고 다양한 프로그램 개념을 쉽게 습득할 수 있는 언어이기도 하다.
어떤 언어든 처음 한두 권의 자습서를 떼고 나면 막막한 느낌이 들기 마련이다. 문법은 어느 정도 습득했고 간단한 예제도 다뤄봤지만, 실제 실무나 실전에서 활용하려면 시작점이 될 만한 문서를 찾아보기도 어렵고, 도움을 받기 어려운 경우가 많다. 그런 의미에서 이 책 『코어 파이썬 애플리케이션 프로그래밍』은 초급자가 중급자로 발돋움하기 위한 좋은 발판이 될 수 있다. 이 책에서 기본적인 개념과 키워드를 배우고, 부족한 부분은 다른 책이나 웹 서핑을 통해 채워나간다면 짧은 시간 안에 훌륭한 개발자로 자리 잡을 수 있을 것이다.
이 책은 개발자라면 누구나 알아야 하는 기본 도구라 할 수 있는 정규식과 네트워크 프로그래밍, 멀티스레드, 멀티프로세스 프로그래밍을 다룬 후 웹 서버 프로그래밍, 구글 앱 엔진, COM 등 다양한 응용 분야를 다룬다. 각 장을 마무리할 때마다 새로운 개념과 분야를 배우고 더 잘 이해하게 될 것이며, 더불어 실무에서 유용하게 사용할 수 있는 도구를 갖춰 갈 수 있을 것이다.
아무쪼록 이를 통해 파이썬을 더 넓고 깊게 활용할 수 있는 개발자들이 많이 늘어나고, 실무에서 파이썬을 사용해 개발의 재미와 빠른 목적 달성의 기쁨을 동시에 맛볼 수 있는 분들이 널리 늘어나길 바란다.
오현석, 서형국

옮긴이 소개

오현석

KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 현재는 호주 그리피스 대학교(Griffith University)에서 웹 백엔드 개발 및 지원업무를 담당하고 있다. 웹이나 모바일 등의 분야에서 값 중심의 프로그래밍을 통해 좀 더 오류 발생 가능성이 적고 유지보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다. 에이콘출판사에서 출간한 『Programming in Scala (Second Edition) 한국어판』(2014년)도 번역했다.

서형국

KAIST 전산학과 학부를 졸업하고 서강대 정보통신대학원 정보시스템 전공으로 석사학위를 취득했다. 솔트룩스, 와이즈넛 등의 검색과 텍스트마이닝 전문 기업에서 키워드 추출기, 문서 클러스터링 엔진, 특허 선행 기술 검색 시스템 등을 개발했으며, 텍스트 이면의 정보를 캐내고(말 그대로 마이닝하는) 활용하는 데 관심이 많다. 현재는 구인/구직 관련 추천 시스템 알고리즘을 기획/설계하는 일을 하고 있다.

목차

목차
  • I부 애플리케이션 개발 일반
  • 1장 정규식
    • 1.1 소개
    • 1.2 특수 기호와 문자
    • 1.3 정규식과 파이썬
    • 1.4 정규식 예제
    • 1.5 더 긴 정규식 예제
    • 1.6 연습문제
  • 2장 네트워크 프로그래밍
    • 2.1 소개
    • 2.2 클라이언트/서버 아키텍처
    • 2.3 소켓: 통신 종단점
    • 2.4 파이썬 네트워크 프로그래밍
    • 2.5 SocketServer 모듈
    • 2.6 트위스티드 프레임워크 소개
    • 2.7 관련 모듈
    • 2.8 연습문제
  • 3장 인터넷 클라이언트 프로그래밍
    • 3.1 인터넷 클라이언트란?
    • 3.2 파일 전송
    • 3.3 네트워크 뉴스
    • 3.4 이메일
    • 3.5 관련 모듈
    • 3.6 연습문제
  • 4장 멀티스레드 프로그래밍
    • 4.1 소개/동기
    • 4.2 스레드와 프로세스
    • 4.3 스레드와 파이썬
    • 4.4 thread 모듈
    • 4.5 threading 모듈
    • 4.6 싱글스레드와 멀티스레드 실행 비교
    • 4.7 실제 멀티스레드 프로그래밍
    • 4.8 생산자/소비자 문제와 Queue/queue 모듈
    • 4.9 스레드에 대한 대안
    • 4.10 관련 모듈
    • 4.11 연습문제
  • 5장 GUI 프로그래밍
    • 5.1 소개
    • 5.2 Tkinter와 파이썬 프로그래밍
    • 5.3 Tkinter 예제
    • 5.4 다른 GUI 간략 소개
    • 5.5 관련 모듈과 GUI
    • 5.6 연습문제
  • 6장 데이터베이스 프로그래밍
    • 6.1 소개
    • 6.2 파이썬 DB-API
    • 6.3 ORM
    • 6.4 비관계형 데이터베이스
    • 6.5 참고 자료
    • 6.6 연습문제
  • 7장 *마이크로소프트 오피스 프로그래밍
    • 7.1 소개
    • 7.2 파이썬 COM 클라이언트 프로그래밍
    • 7.3 소개용 예제
    • 7.4 중간 수준 예제
    • 7.5 관련 모듈/패키지
    • 7.6 연습문제
  • 8장 파이썬 확장
    • 8.1 소개/동기
    • 8.2 확장 모듈을 작성해 파이썬 확장
    • 8.3 관련 주제
    • 8.4 연습문제
  • II부 웹 개발
  • 9장 웹 클라이언트와 서버
    • 9.1 소개
    • 9.2 파이썬 웹 클라이언트 도구
    • 9.3 웹 클라이언트
    • 9.4 웹(HTTP) 서버
    • 9.5 관련 모듈
    • 9.6 연습문제
  • 10장 웹 프로그래밍: CGI와 WSGI
    • 10.1 소개
    • 10.2 웹 서버의 클라이언트 데이터 처리 돕기
    • 10.3 CGI 애플리케이션 작성
    • 10.4 CGI에서 유니코드 사용
    • 10.5 고급 CGI
    • 10.6 WSGI 소개
    • 10.7 현실의 웹 개발
    • 10.8 관련 모듈
    • 10.9 연습문제
  • 11장 웹 프레임워크: 장고
    • 11.1 소개
    • 11.2 웹 프레임워크
    • 11.3 장고 소개
    • 11.4 프로젝트와 앱
    • 11.5 첫 번째‘Hello World’애플리케이션(블로그)
    • 11.6 모델 작성과 데이터베이스 서비스에 추가
    • 11.7 파이썬 애플리케이션 셸
    • 11.8 장고 관리 앱
    • 11.9 블로그의 사용자 인터페이스 작성
    • 11.10 출력 개선
    • 11.11 사용자 입력 처리
    • 11.12 폼과 모델 폼
    • 11.13 뷰에 대한 더 많은 정보
    • 11.14 *룩앤필 향상
    • 11.15 *단위 테스트
    • 11.16 *중급 장고 앱: TweetApprover
    • 11.17 관련 자료
    • 11.18 정리
    • 11.19 연습 문제
  • 12장 클라우드 컴퓨팅: 구글 앱 엔진
    • 12.1 소개
    • 12.2 클라우드 컴퓨팅이란?
    • 12.3 샌드박스와 앱 엔진 SDK
    • 12.4 앱 엔진 프레임워크 선정
    • 12.5 파이썬 2.7 지원
    • 12.6 장고와의 비교
    • 12.7‘Hello World’를 간단한 블로그로 변형
    • 12.8 멤캐시 서비스 추가
    • 12.9 정적 파일
    • 12.10 Users 서비스 추가
    • 12.11 원격 API 셀
    • 12.12 초읽기: 파이썬 코드로 작성
    • 12.13 XMPP를 사용한 메시지 발신
    • 12.14 이미지 처리
    • 12.15 작업 큐: 스케줄되지 않은 작업
    • 12.16 Appstats로 프로파일링
    • 12.17 URLfetch 서비스
    • 12.18 초읽기: 파이썬 코드 없이
    • 12.19 벤더 종속
    • 12.20 관련 자원 정보
    • 12.21 정리
    • 12.22 연습문제
  • 13장 웹 서비스
    • 13.1 소개
    • 13.2 야후! 금융 주식 시세 서버
    • 13.3 트위터를 사용한 마이크로블로깅
    • 13.4 연습문제
  • III부 보충/실험
  • 14장 텍스트 처리
    • 14.1 CSV
    • 14.2 JSON
    • 14.3 XML
    • 14.4 참고 자료
    • 14.5 관련 모듈
    • 14.6 연습문제
  • 15장 그 밖의 주제
    • 15.1 자이썬
    • 15.2 구글플러스
    • 15.3 연습문제
  • 부록A 일부 연습문제 해답
  • 부록B 파이썬 관련 각종 참조표
  • 부록C 파이썬 3: 프로그래밍 언어의 발전
    • C.1 파이썬이 바뀐 이유
    • C.2 변경 사항
    • C.3 마이그레이션 도구
    • C.4 정리
    • C.5 참고 자료
  • 부록D 파이썬 2.6+로 파이썬 마이그레이션
    • D.1 파이썬 3: 다음 세대
    • D.2 정수
    • D.3 내장 함수
    • D.4 객체지향 프로그래밍: 두 가지 다른 클래스 객체
    • D.5 문자열
    • D.6 예외
    • D.7 기타 전환 도구와 조언
    • D.8 버전 2.x와 3.x 모두 사용 가능한 코드 작성
    • D.9 정리

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[ p108 '예제 2-1 TCP 타임스탬프 서버' 10행 ]
BUFSIZ = 10 → BUFSIZ = 1024

[ p128 '2.6 트위스티드 프레임워크 소개' 중 위에서 8행 ]
트우스티드 → 트위스티드

[ p222 예제 4-3 스레드와 락을 사용하기(mtsleepB.py) 중 24번째 행]
24번째 행의 for i in nloops:을 28번째 행의 for i in nloops:만큼 들여쓰기.

[ p245 아래에서 1행(코드 변경) ]

[ p.535 아래에서 1행 ]
frients.htm → friends.htm

2015-08-31

p64 12행

s = 'This and that.l' → s = 'This and that.'

p65 8행

and (th\w+), ... s, re.I) → and (th\w+), s, re.I)

2015-12-09

p70 두 번째 코드 문단 중 공백 추가

... [] # space

... [ ] # space