• 빠르게 활용하는 파이썬 3.2 프로그래밍

  • 신호철, 우상정, 최동진 지음

  • 프로그래밍 & 프랙티스 시리즈 _ 001
  • ISBN: 9788992939409
  • 28,000원 | 2012년 04월 12일 발행 | 596쪽



<파이썬 3.2 프로그래밍>은 강력하고 쉬운 언어인 파이썬을 자유자재로 사용하는 방법을 안내해 줄 최선의 선택이 될 것입니다.

파이썬을 처음 만나는 분들은 물론이고, 기존에 파이썬을 쓰던 분들도 이 책을 통해 업그레이드된 파이썬 3 버전의 달라진 문법에 대한 부담을 해결할 수 있습니다. 또, 지루한 문법 설명만으로 이루어져 있지 않고 실제 활용 가능한 예제들과 함께 설명을 하고 있으며, 특히 마지막 3부에서는 ‘파이썬을 이용한 블로그 검색엔진 만들기’라는 프로젝트를 통해 기존에 배웠던 파이썬에 대한 지식을 더욱 넓힐 수 있을 것입니다. 이 책의 마지막 페이지를 넘기고 난 후에는 파이썬 3을 이용하여 생각한 일을 효율적으로 빠르고 쉽게 구현할 수 있을 것이며, 왜 수많은 사람들이 파이썬에 열광하는지 알게 될 것입니다.

 

배타리더 서평

김용현(Devpia Architecture 시삽, MS MVP, www.YHKim.com)

학교에서 C를 먼저 배우면서 반강제적으로 문법의 구석구석을 익히게 되었고, 몇 개의 프로젝트를 통해서 언어에 대한 감을 익힌 상태일 때, 파이썬을 알게 되었습니다. 두 언어의 활용과 비교를 통해 프로그래밍 언어라는 특징을 알 수 있었는데, 특히 프로그래밍 학습이라는 부분에서 사뭇 차이점을 발견할 수 있었습니다. 만일, 내 아이에게 첫 프로그래밍 언어를 가르친다면 주저 없이 파이썬을 선택할 예정입니다. 이렇듯 파이썬은 쉬운 언어이면서 구글, 다음, 네이버 등 전 세계와 우리나라의 인터넷을 리드하고 있는 서비스에서 비중 있게 사용되는 강력한 언어입니다. 파이썬3 프로그래밍 책을 처음부터 리뷰하면서 대학시절 처음 파이썬을 봤을 때 느낌, 내 아이에게 파이썬을 통해 프로그래밍을 알려주려고 마음 먹었던 때의 생각 등을 다시 느낄 수 있었습니다. 책을 따라가다 보면 아이가 언어를 배우는 것처럼 재미있게 언어를 접하는 것은 물론, 장고 등의 외부 모듈을 이용한 프로젝트 스킬을 쉽게 접할 수 있습니다.

손영수 (Devpia Architecture 시삽, EvaCast 리더, http://www.arloa.net)

파이썬의 기초부터 다양한 활용 방면을 두루 다룬 서적으로, 파이썬을 처음 접한 분뿐만 아니라, 파이썬3의 변화를 알고 싶은 분에게도 추천하고 싶은 서적입니다. 특히 후반에 다루는 루씬과의 결합으로 만들어진 검색 엔진 만들기는 파이썬의 높은 생산성을 보여 주는 이 책의 백미라고 할 수 있습니다. 다른 언어에 비해 높은 생산성을 가진 파이썬을 알고 싶은 개발자라면, 어서 읽어 보길 바랍니다.

'파이썬 3.2 프로그래밍'은 파이썬 3을 자유자재로 사용하는 방법을 안내해 줄 것입니다. 기본 문법을 배우고, 다양한 필수 모듈들 및 수많은 예제들에 대해서 살펴보게 되면 자연히 파이썬에 익숙해져 있는 자신을 발견하게 될 것입니다.

이 책을 통해 여러분은 다음의 내용들을 익히게 됩니다.

  • 개정된 파이썬 3 문법
  • 쉽고 곧바로 활용 가능한 예제
  • 즉시 활용 가능한 다양한 라이브러리 사용 방법
  • 파이썬을 이용한 검색엔진 만들기

이 책의 마지막 페이지를 넘기실 때에는 파이썬 3을 이용하여 생각한 일을 효율적으로 빠르고 쉽게 구현할 수 있으며, 왜 수많은 사람들이 파이썬에 열광하는지 알게 될 것입니다.

신호철 cybrshin@gmail.com, http://dsphome.net

KAIST 석사 졸. SK planet에서 근무 중이며, 어떻게 하면 개발자들을 위한 아름다운 세상을 만들 수 있을지 고심 중이다. 저서로는 <빠르게 활용하는 SQLite3>, 등이 있다.

우상정 again4you@gmail.com

KAIST 석사. 개발은 기술이 아니라 사람이 하는 것이란 생각에, 사람을 공부하는 프로그래머이다. 게으름이 천성이라 스크립트 언어로 쉽게 업무를 즐기며, 새로운 기술에 자주 매료되곤 한다. 저서로는 <빠르게 활용하는 SQLite3>가 있으며, 역서로는 <소프트웨어 아키텍트가 알아야 할 97가지>가 있다.

최동진 milkelf.choi@gmail.com, http://milkelf.tistory.com

로봇 관련 소프트웨어를 개발했으며 국내 최고의 로봇대회에서 최우수상을 수상했다. 지금은 모바일 애플리케이션 제작을 하고 있지만 틈틈이 로봇 관련 소프트웨어를 연구하고 있다. 소프트웨어 이외에도 많은 분야에 관심을 가지고 있고, 특히 역사에 빠져 있다. C언어 대신 파이썬이 먼저 발표되었다면 세상이 훨씬 아름다워져 있을 거라며 안타까워하고 있다.

 

지은이 글

여러분은 한 분야의 전문가인가요? 아마도 모든 분들이 자신만의 분야에서 전문적인 지식을 쌓아가고 있을 것입니다.

그러나 어느 정도 이상의 성취를 위해서는 이전에 했던 몇 배 이상의 노력을 필요로 하고, 그로 인해 도중에 포기하는 일도 많이 생깁니다. 이럴 때는 스티브 잡스의 ‘connecting the dots’나 무협지에서 이야기하는 ‘만류귀종(萬流歸宗)’을 추천합니다 . 프로그래밍 언어 또한 마찬가지입니다. 특정 언어들만을 신봉하며 한 가지 언어를 고수하기 보다는, 여러 가지 언어를 사용할 줄 알며 적절한 곳에 알맞은 언어를 사용할 줄 아는 유연함을 갖추길 바랍니다. 처음 프로그래밍을 시작하는 분들에게 파이썬은 매우 적합합니다. 사실 처음부터 C나 어셈블러, 자바 등의 언어를 배우기에는 진입장벽이 높습니다. 그에 비해 파이썬은 배우기 쉬우며, 윈도우나 유닉스 등 여러 운영체제에서도 큰 수정 없이 잘 동작합니다. 또한 C로는 며칠 걸려서 작업해야 하는 일을 단 몇 시간 만에 완성할 수 있을 정도로 효율이 좋습니다. 게다가 병목현상이 일어나는 부분은 파이썬이 아닌 C로 구현을 해서 연결하면 속도 문제나, 파이썬에서 지원되지 않는 부분도 해결 가능합니다.

이 책은 다음과 같이 구성되어 있습니다.

  • 1부에서는 파이썬3의 문법에 대해 알아봅니다. 자세한 설명과 간단한 예제를 통해 기본 문법을 이해하게 됩니다.
  • 2부에서는 파이썬3의 필수 모듈에 대해서 공부합니다. 모든 모듈을 다루지는 않지만 일반적으로 가장 자주 쓰이고 유용한 모듈들에 대해서 실생활에서 자주 쓰이는 예제와 함께 습득합니다.
  • 3부에서는 앞에서 배운 모든 것들을 활용하여 블로그 검색엔진 프로젝트를 만들어 봅니다.

이 프로젝트를 위해서는 외부 모듈도 사용되며, 몇몇 외부 모듈은 파이썬3 지원 문제로 인해 파이썬 2.5로 구현합니다. 1, 2부를 충실히 공부한 분들은 3부도 그리 어렵지 않게 따라 배울 수 있을 것이며, 파이썬이 얼마나 편하고 강력한 언어인지 알게 될 것입니다.

  • 1부 문법
    • 01장 파이썬 개요 및 설치
      • 1.1 파이썬이란?
      • 1.2 파이썬의 특징
      • 1.3 파이썬의 종류
      • 1.4 파이썬이 쓰이는 프로젝트들
      • 1.5 2.x와 3의 차이
      • 1.6 설치 및 개발환경
      • 1.7 Hello world
      • 1.8 들여쓰기에 대해서
      • 1.9 소스코드 인코딩
      • 1.10 기타 파이썬 문법
      • 1.11 2.x를 3으로 변경하기
      •  
    • 02장 자료형 및 연산자
      • 2.1 변수명
      • 2.2 수치
      • 2.3 문자
      • 2.4 유니코드
      • 2.5 리스트
      • 2.6 세트
      • 2.7 튜플
      • 2.8 사전
      • 2.9 부울
      • 2.10 얕은/깊은 복사에 관해
      •  
    • 03장 함수
      • 3.1 함수의 정의
      • 3.2 return
      • 3.3 인자 전달
      • 3.4 스코핑 룰
      • 3.5 함수 인자
      • 3.6 람다 함수
      • 3.7 재귀적 함수 호출
      • 3.8 pass
      • 3.9 doc 속성과 help 함수
      • 3.10 이터레이터
      • 3.11 제너레이터
      •  
    • 04장 제어
      • 4.1 if 문
      • 4.2 조건식의 참/거짓 판단
      • 4.3 단축 평가
      • 4.4 while 문
      • 4.5 for 문
      • 4.6 break, continue 그리고 else
      • 4.7 제어문과 연관된 유용한 함수들
      •  
    • 05장 클래스
      • 5.1 클래스 이야기
      • 5.2 클래스 선언
      • 5.3 클래스 객체와 인스턴스 객체의 이름공간
      • 5.4 클래스 객체와 인스턴스 객체의 관계
      • 5.5 생성자, 소멸자 메서드
      • 5.6 정적 메서드, 클래스 메서드
      • 5.7 연산자 중복 정의
      • 5.8 상속
      •  
    • 06장 모듈
      • 6.1 모듈 사용하기
      • 6.2 모듈 만들기
      • 6.3 모듈의 경로
      • 6.4 모듈 임포트
      • 6.5 모듈 임포트 파헤치기
      • 6.6 main을 사용한 유용한 팁
      • 6.7 패키지
      •  
    • 07장 예외 처리
      • 7.1 구문 에러
      • 7.2 예외
      • 7.3 예외 처리
      • 7.4 raise 구문
      • 7.5 사용자정의 예외
      • 7.6 assert 구문
      •  
    • 08장 입출력
      • 8.1 표준 입출력
      • 8.2 파일 입출력
      • 8.3 pickle
      •  
    • 09장 C/C 와의 연동
      • 9.1 왜 확장 모듈이 필요한가?
      • 9.2 간단한 확장 모듈 예제
      • 9.3 모듈 초기화
      • 9.4 모듈 빌드
      • 9.5 파이썬/C API
      • 9.6 에러 처리
      • 9.7 레퍼런스 카운트
      • 9.8 확장 타입
      • 9.9 ctypes
      •  
  • 2부 중요 모듈
    • 10장 문자열 이야기
      • 10.1 문자열 다루기
      • 10.2 정규표현식(re) 모듈
      •  
    • 11장 날짜 이야기
      • 11.1 시간(time) 모듈
      • 11.2 날짜시간(datetime) 모듈
      •  
    • 12장 숫자 이야기
      • 12.1 수학(math) 모듈
      • 12.2 분수(fractions) 모듈
      • 12.3 십진법(decimal) 모듈
      • 12.4 랜덤(random) 모듈
      •  
    • 13장 파일 시스템을 자유자재로
      • 13.1 os.path
      • 13.2 glob
      • 13.3 tree 예제
      •  
    • 14장 데이터베이스
      • 14.1 데이터베이스 연결
      • 14.2 SQL문 수행
      • 14.3 레코드 조회
      • 14.4 트랜잭션 처리
      • 14.5 레코드 정렬과 사용자 정렬 함수
      • 14.6 SQLite3 내장 집계 함수
      • 14.7 사용자정의 집계 함수
      • 14.8 자료형
      • 14.9 사용자정의 자료형
      • 14.10 데이터베이스 덤프 만들기
      • 14.11 명령어 프롬프트에서 SQLite3 관리하기
      •  
    • 15장 운영체제 관련 주요 모듈
      • 15.1 os 모듈
      • 15.2 sys 모듈
      • 15.3 threading 모듈
      • 15.4 queue 모듈
      •  
    • 16장 XML
      • 16.1 파이썬과 XML
      • 16.2 XML 문서 파싱하기
      • 16.3 노드
      • 16.4 엘리먼트
      • 16.5 엘리먼트 쉽게 다루기
      • 16.6 XML 문서를 HTML로 변환하기
      • 16.7 도서 관리 프로그램
      •  
    • 17장 파이썬과 인터넷
      • 17.1 파이썬이 지원하는 네트워크, 인터넷 모듈
      • 17.2 OpenAPI를 이용해 책 정보 가져오기
      • 17.3 파이썬으로 이메일 보내기
      • 17.4 웹 서버 만들기
      •  
    • 18장 더 견고한 코드 만들기
      • 18.1 단위 테스트(unittest)
      • 18.2 pydoc
      • 18.3 doctest
      •  
    • 19장 distutils를 이용한 배포
      • 19.1 도서 관리 프로그램 배포하기
      • 19.2 setup.py 파일 작성하기
      • 19.3 확장모듈 배포하기
      • 19.4 Setup Configuration 파일 작성 방법
      •  
    • 20장 파이썬3를 활용한 통계 분석 - 선형 회귀
      • 20.1 회귀분석이란?
      • 20.2 관련 모듈 설치
      • 20.3 회귀분석 예제
      •  
    • 21장 파이썬3를 활용한 기계 학습 - 인공 신경망
      • 21.1 인공 신경망이란?
      • 21.2 bpnn 모듈을 활용한 인공 신경망 예제
      •  
    • 22장 pypy
      • 22.1 pypy란?.
      • 22.2 pypy 설치 및 테스트
      • 22.3 pypy의 호환성
      •  
    • 23장 구글 앱 엔진
      • 23.1 구글 앱 엔진이란?
      • 23.2 앱 엔진에서의 웹 애플리케이션 개발 순서
      • 23.3 앱 엔진 파이썬 살펴보기
      • 23.4 앱 엔진 SDK 설치 및 웹 애플리케이션 개발
      •  
  • 3부 검색 엔진 만들기
    • 24장 자료 수집
      • 24.1 웹크롤러
      • 24.2 robots.txt
      • 24.3 웹 페이지 읽기
      • 24.4 전체 흐름에 대해서
      • 24.5 데이터베이스 관리 클래스
      • 24.6 메인 페이지로부터 이웃 블로그 정보 수집하기
      • 24.7 블로그 본문 파싱
      •  
    • 25장 인덱싱
      • 25.1 루씬이란?
      • 25.2 PyLucene 설치
      • 25.3 PyLucene 활용하기
      • 25.4 BlogSearcher 클래스
      •  
    • 26장 검색 사이트 만들기
      • 26.1 장고(Django) 설치하기
      • 26.2 프로젝트 생성하기
      • 26.3 장고 프레임워크
      • 26.4 Model, View, Template
      • 26.5 메인 페이지 만들기
      • 26.6 검색 결과 페이지 만들기
      •  
  • 부록A Pydev 설치와 사용법
    • A.1 Pydev 설치 방법
    • A.2 Pydev를 이용하여 개발하기
    •  
  • 부록B pdb 모듈을 이용한 디버깅
    • B.1 디버깅용 코드 작성
    • B.2 pdb 실행과 종료
    • B.3 소스코드와 실행위치 보기
    • B.4 브레이크 포인트 설정하기
    • B.5 코드를 수행하며 변수값 확인하기
    • B.6 도움말
  • 114쪽, 예제 5-8-5.py의 24번째 줄

    명시적으로 Person 클래스의 PrintPersonData()를 호출 --> 명시적으로 Person 클래스의 PrintInfo()를 호출

예제코드 관련 GitHub 페이지

관련 글