Top

파이썬 프로그래밍 기초부터 응용까지 (세트)

  • 지은이웨슬리 천, 제니퍼 캠벨, 폴 그리스, 제이슨 몬토조, 그렉 윌슨
  • 옮긴이오현석, 서형국, 이대엽
  • ISBN : 9788960775237
  • 68,000원
  • 2014년 02월 12일 펴냄
  • 페이퍼백 | 1,448쪽 | 188*250mm

책 소개

세트 구성: 전2권
『코어 파이썬 애플리케이션 프로그래밍 Core Python Applications Programming Third Edition』 소개

파이썬 언어 입문서를 하나쯤 마친 프로그래머라면 누구나 배운 것을 어디에 써먹을 수 있을지 고민할 것이다. 십여 년간 파이썬 관련 커뮤니티에서 저술가로 활약해온 저자 웨슬리 천이 쓴 이 책은 초중급 독자가 실전에 활용할 수 있도록 정규식, 스레드 프로그래밍, 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), 드림웍스 등이 있다.

『개념을 잡아주는 프로그래밍 정석: 기초 연산부터 고급 문제해결 능력까지 파이썬을 활용한 효율적인 프로그래밍 학습』 소개

프로그래밍 개론을 익히고 큰 그림을 그리고 싶은데 프로그래밍 언어를 먼저 배워야 가능하다? 프로그래밍 언어를 배우자니 기초가 부족하여 어렵거나? 닭이 먼저냐 달걀이 먼저냐라는 문제를 뛰어넘어, 직관적이면서도 비교적 장벽이 없는 언어인 파이썬을 활용해 프로그램 언어를 배우는 수고를 최대한 건너뛰고 바로 프로그래밍 과정에서 일어나는 문제 해결에 집중하도록 돕는 책이다.

이 책에서 다루는 내용

■ 산술 연산에서 루프와 if문까지 이르는 기본적인 프로그래밍 요소
■ 함수와 모듈을 이용한 프로그램 구성
■ 체계적인 알고리즘 설계
■ 디버깅
■ 데이터베이스 생성과 질의
■ 더 쉬운 프로그램 사용을 위한 그래픽 인터페이스 제작
■ 객체지향 프로그래밍과 프로그래밍 패턴

저자/역자 소개

저자 소개

웨슬리 천(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)로서 구글의 클라우드 제품을 소개하는 일을 하고 있다. 그의 집은 실리콘밸리에 있다.

제니퍼 캠벨(Jennifer Campbell)

토론토 대학교 컴퓨터 과학과의 전임강사로 이 책의 토대가 된 과정을 만들었다.

폴 그리스(Paul Gries)

토론토 대학교 컴퓨터 과학과의 전임강사로 우수 강의상을 수차례 받은 바 있으며 다른 여러 컴퓨터 과학 입문 교재도 집필했다.

제이슨 몬토조(Jason Montojo)

제니퍼 캠벨과 폴 그리스의 지도를 받았으며, 지금은 IBM에서 이클립스 프로그래밍 플랫폼 관련 업무를 하고 있다. 또한 전문적인 사진작가이자 디지털 예술에도 능해 이 책에 포함된 다이어그램을 모두 만들었다.

그렉 윌슨(Greg Wilson)

학계로 돌아가기 전까지 수년 동안 현장에서 근무했으며, 10년 넘게 파이썬을 썼고 다른 프로그래밍 서적도 다수 집필했다.

옮긴이 소개

오현석

전산학과 학부를 졸업하고 동 대학원 프로그래밍 언어 전공으로 KAIST 석사학위를 취득했다. 삼성메디슨, 비트앤펄스 등에서UI 개발과 개발 팀장을 역임했으며, 현재는 호주 그리피스 대학교(Griffith University)에서 웹 백엔드 개발과 지원 업무를 담당하고 있다. 웹이나 모바일과 등의 분야에서 값 중심의 프로그래밍을 통해 좀 더 오류 발생 가능성이 적고 유지 보수가 편한 프로그램을 작성하는 방법과 이를 지원하는 여러 도구를 만드는 일에 관심이 많다.

서형국

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

이대엽

처음 프로그래밍을 접했을 때 가장 어울리는 일을 찾은 듯해서 다행스러웠던 평범한 프로그래머. 오픈소스 프로젝트에 관심이 있고 플랫폼에 구애받지 않는 프로그래머가 되려고 노력 중이다. 『소트웍스 앤솔러지』(위키북스, 2008)를 공역했다.

목차

목차
  • 『코어 파이썬 애플리케이션 프로그래밍 Core Python Applications Programming Third Edition』
  • 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 정리

  • 『개념을 잡아주는 프로그래밍 정석: 기초 연산부터 고급 문제해결 능력까지 파이썬을 활용한 효율적인 프로그래밍 학습』
  • 1장 소개
    • 1.1 프로그램과 프로그래밍
    • 1.2 용어 정의
    • 1.3 설치 방법
    • 1.4 이 책의 구성
    • 1.5 정리
  • 2장 파이썬 소개
    • 2.1 큰 그림
    • 2.2 수식
    • 2.3 타입이란
    • 2.4 변수와 할당문
    • 2.5 오류
    • 2.6 함수
    • 2.7 내장 함수
    • 2.8 스타일 노트
    • 2.9 정리
    • 2.10 연습문제
  • 3장 문자열
    • 3.1 문자열
    • 3.2 특수 문자
    • 3.3 여러 줄 문자열
    • 3.4 print
    • 3.5 출력 형식 지정
    • 3.6 사용자 입력
    • 3.7 정리
    • 3.8 연습문제
  • 4장 모듈
    • 4.1 모듈 가져오기
    • 4.2 새로운 모듈 정의
    • 4.3 객체와 메소드
    • 4.4 픽셀과 색
    • 4.5 테스트
    • 4.6 스타일 노트
    • 4.7 정리
    • 4.8 연습문제
  • 5장 리스트
    • 5.1 리스트와 인덱스
    • 5.2 리스트 변경
    • 5.3 리스트 관련 내장 함수
    • 5.4 리스트 항목 처리
    • 5.5 슬라이싱
    • 5.6 별칭
    • 5.7 리스트 메소드
    • 5.8 중첩 리스트
    • 5.9 다른 시퀀스 타입
    • 5.10 파일을 리스트로
    • 5.11 주석
    • 5.12 정리
    • 5.13 연습문제
  • 6장 선택
    • 6.1 불린 로직
    • 6.2 if문
    • 6.3 조건식의 결과 저장
    • 6.4 정리
    • 6.5 연습문제
  • 7장 반복
    • 7.1 실행 횟수가 정해진 루프
    • 7.2 while 루프
    • 7.3 사용자 입력 루프
    • 7.4 루프 제어
    • 7.5 스타일 노트
    • 7.6 정리
    • 7.7 연습문제
  • 8장 파일 처리
    • 8.1 한 줄짜리 레코드
    • 8.2 여러 필드로 구성된 레코드
    • 8.3 위치 기준 데이터
    • 8.4 여러 줄 레코드
    • 8.5 내다보기
    • 8.6 파일에 쓰기
    • 8.7 정리
    • 8.8 연습문제
  • 9장 집합과 사전
    • 9.1 집합
    • 9.2 사전
    • 9.3 사전 뒤집기
    • 9.4 정리
    • 9.5 연습문제
  • 10장 알고리즘
    • 10.1 탐색
    • 10.2 시간 측정
    • 10.3 정리
    • 10.4 연습문제
  • 11장 탐색과 정렬
    • 11.1 선형 탐색
    • 11. 2 이진 탐색
    • 11.3 정렬
    • 11.4 더 효율적인 정렬 알고리즘
    • 11.5 병합 정렬: Nlog2N 알고리즘
    • 11.6 정리
    • 11.7 연습문제
  • 12장 프로그램 제작
    • 12.1 함수 고찰
    • 12.2 예외
    • 12.3 테스트
    • 12.4 디버깅
    • 12.5 패턴
    • 12.6 정리
    • 12.7 연습문제
  • 13장 객체지향 프로그래밍
    • 13.1 Color 클래스
    • 13.2 특별 메소드
    • 13.3 dir과 help
    • 13.4 객체지향 이론
    • 13.5 심화 예제
    • 13.6 정리
    • 13.7 연습문제
  • 14장 그래픽 사용자 인터페이스
    • 14.1 Tkinter 모듈
    • 14.2 기본적인 GUI 제작
    • 14.3 모델, 뷰, 컨트롤러
    • 14.4 스타일
    • 14.5 그 밖의 위젯
    • 14.6 객체지향 GUI
    • 14.7 정리
    • 14.8 연습문제
  • 15장 데이터베이스
    • 15.1 큰 그림
    • 15.2 첫걸음
    • 15.3 데이터 조회
    • 15.4 갱신과 삭제
    • 15.5 트랜잭션
    • 15.6 누락 데이터와 NULL
    • 15.7 조인을 이용한 테이블 조합
    • 15.8 키와 제약 조건
    • 15.9 고급 기능
    • 15.10 정리
    • 15.11 연습문제
  • 부록 A 참고 문헌

도서 오류 신고

도서 오류 신고

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

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

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