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

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

  • 프로그래밍 & 프랙티스 시리즈 _ 001
  • ISBN: 9788992939230
  • 25,000원 | 2009년 06월 30일 발행 | 564쪽



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

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

 

배타리더 서평

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

학교에서 C를 먼저 배우면서 반강제적으로 문법의 구석구석을 익히게 되었고, 몇 개의 프로젝트를 통해서 언어에 대한 감을 익힌 상태일 때, 파이썬을 알게 되었습니다.

두 언어의 활용과 비교를 통해 프로그래밍 언어라는 특징을 알 수 있었는데, 특히 프로그래밍 학습이라는 부분에서 사뭇 차이점을 발견할 수 있었습니다. 만일, 내 아이에게 첫 프로그래밍 언어를 가르친다면 주저 없이 파이썬을 선택할 예정입니다.

이렇듯 파이썬은 쉬운 언어이면서 구글, 다음, 네이버 등 전 세계와 우리나라의 인터넷을 리드하고 있는 서비스에서 비중 있게 사용되는 강력한 언어입니다.

파이썬3 프로그래밍 책을 처음부터 리뷰하면서 대학시절 처음 파이썬을 봤을 때 느낌, 내 아이에게 파이썬을 통해 프로그래밍을 알려주려고 마음 먹었던 때의 생각 등을 다시 느낄 수 있었습니다.

책을 따라가다 보면 아이가 언어를 배우는 것처럼 재미있게 언어를 접하는 것은 물론, 장고 등의 외부 모듈을 이용한 프로젝트 스킬을 쉽게 접할 수 있습니다.

 

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

파이썬의 기초부터 다양한 활용 방면을 두루 다룬 서적으로, 파이썬을 처음 접한 분뿐만 아니라, 파이썬3의 변화를 알고 싶은 분에게도 추천하고 싶은 서적입니다.

특히 후반에 다루는 루씬과의 결합으로 만들어진 검색 엔진 만들기는 파이썬의 높은 생산성을 보여 주는 이 책의 백미라고 할 수 있습니다. 다른 언어에 비해 높은 생산성을 가진 파이썬을 알고 싶은 개발자라면, 어서 읽어 보길 바랍니다.

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

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

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

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

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

KAIST 석사졸, 책임연구원.

임베디드용 음성인식 개발, 잉크 검색 어플 개발, 임베디드용 데이터베이스 개발, 지능형 웹 검색 개발 등의 과제를 거쳐 현재는 모바일 리눅스 플랫폼을 개발 중이다.

어떻게 하면 아름다운 개발자 친화적인 환경을 만들 수 있을 지에 대해 고심 중이며, 또한 파이썬에 심취 중이다.

저서로는 '예제로 배우는 프로그래밍 루아', 'IT Cookbook for beginner C 기초' 등이 있다.

 

우상정 again4you@gmail.com, http://www.fast-learner.net

개발은 기술이 아니라 사람이 하는 것이란 생각에, 사람을 공부하는 프로그래머이다.

임베디드 데이터베이스 개발, Mobile용 검색 엔진 개발 과제를 거쳐 현재는 모바일 플랫폼 개발을 하고 있다.

게으름이 천성이라 쉬운 스크립트 언어로 업무를 즐기며, 5년째 키우는 고양이의 재롱과 새로운 기술에 자주 매료되곤 한다.

컴퓨터 잡지에 쓴 몇 편의 글과 온오프라인으로 진행한 세미나 경험을 바탕으로 이번 파이썬 책을 출간하게 되었다.

 

최동진 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부 문법
    • 1장 파이썬 개요 및 설치
      • 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으로 변경하기
  •  
    • 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 return
      • 3.3 인수 전달
      • 3.4 스코핑 룰
      • 3.5 함수 인수
      • 3.6 람다 함수
      • 3.7 재귀적 함수 호출
      • 3.8 pass
      • 3.9 doc 속성과 help 함수
      • 3.10 이터레이터
      • 3.11 제너레이터
    •  
    • 4장 제어
      • 4.1 if 문
      • 4.2 조건식의 참/거짓 판단
      • 4.3 단축 평가
      • 4.4 while 문
      • 4.5 for 문
      • 4.6 break, continue 그리고 else
      • 4.7 제어문과 연관된 유용한 함수들
    •  
    • 5장 클래스
      • 5.1 클래스 이야기
      • 5.2 클래스 선언
      • 5.3 클래스 객체와 인스턴스 객체의 이름 공간
      • 5.4 클래스 객체와 인스턴스 객체의 관계
      • 5.5 생성자, 소멸자 메소드
      • 5.6 정적 메소드, 클래스 메소드
      • 5.7 연산자 중복 정의
      • 5.8 상속
    •  
    • 6장 모듈
      • 6.1 모듈 사용하기
      • 6.2 모듈 만들기
      • 6.3 모듈의 경로
      • 6.4 모듈 임포트
      • 6.5 모듈 임포트 파헤치기
      • 6.6 'main' 을 사용한 유용한 팁
      • 6.7 패키지
    •  
    • 7장 예외처리
      • 7.1 구문 에러
      • 7.2 예외
      • 7.3 예외 처리
      • 7.4 raise 구문
      • 7.5 사용자 정의 예외
      • 7.6 assert 구문
    •  
    • 8장 입출력
      • 8.1 표준 입출력
      • 8.2 파일 입출력
      • 8.3 pickle
    •  
    • 9장 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 파일 작성 방법
    •  
  • 3부 검색엔진 만들기
    • 20장 자료수집
      • 20.1 웹 크롤러
    •  
    • 21장 인덱싱
      • 21.1 루씬이란?
      • 21.2 PyLucene 설치
      • 21.3 PyLucene 활용하기
      • 21.4 BlogSearcher 클래스
    •  
    • 22장 검색 사이트 만들기
      • 22.1 장고 설치하기
      • 22.2 프로젝트 생성하기
      • 22.3 장고 프레임워크
      • 22.4 Model, View, Template
      • 22.5 메인 페이지 만들기
      • 22.6 검색 결과 페이지 만들기
  •  
  • 부록 A. Pydev 설치와 사용 방법
    • A.1 Pydev 설치 방법
    • A.2 Pydev를 이용하여 개발하기
  •  
  • 부록 B. pdb 모듈을 이용한 디버깅
    • B.1 디버깅을 위한 코드 정의
    • B.2 pdb 실행과 종료
    • B.3 소스코드와 실행위치 보기
    • B.4 브레이크 포인트 설정하기
    • B.5 코드를 수행하며 변수값 확인하기
    • B.6 도움말

예제코드 관련 GitHub 페이지

관련 글