처음에 『Python Standard Library』의 서평을 부탁 받았을 때, 그 책이 인자에 대해 재미없게 설명해 놓은 라이브러리 함수 목록일 것이라고 생각했다. 하지만 책을 읽기 시작하면서 나는 즐거운 비명을 질렀다. 저자는 comp.lang.python 유즈넷 뉴스그룹에서 질문에 대답하는 데에 수백 시간을 들였다고 말했다.
책은 건조체의 매뉴얼이 아니라, 유용한 예제로 가득 차 있었다.
Tkinter에 대해 다루지 않았다는 점만 빼면 포괄적인 내용을 다루고 있었다. 대부분의 파이썬 사용자들이 Tkinter를 쓰지 않으며, 이것을 설명하려면 시간도 오래 걸리기 때문에 Tkinter 부분을 뺀 것은 현명한 선택인 것 같다. 프레드릭은 Tkinter에 관한 책을 따로 집필중이다.
『Python Standard Library』는 14 챕터로 구성되어 있다. 각 장에서 관련 모듈 집합을 다루고 있다. 이 책이 이해가 쉽기 때문에, 여기서 책의 내용을 하나하나 열거할 필요는 없을 것 같다. 내용의 분류도 논리적으로 되어 있다. 메일과 뉴스 메시지 프로세스에 대한 내용 뿐 아니라 스레드와 프로세스에 대한 챕터도 있다. "Platform-Specific Modules"와 "Implementation Support Modules" 두 챕터에서는 비 일반적인 모듈도 다룬다.
책의 내용이 어떤지 감을 잡을 수 있도록 두 섹션을 자세히 설명하겠다.
첫 번째는 "Core Modules" 챕터에 있는 "The string Module"라는 섹션이다. 이 섹션은 두 장도 안되고, 거의 코드로만 되어 있다. 문장으로 간략하게 설명한 후, 예제를 통해 설명하였다. 예제에는 파일명이 있으며(부록 CD에서 예제 파일을 찾아볼 수 있다), 열 줄 정도의 코드와 코드 실행 후의 결과가 수록되어 있다. 그 코드는 프린트 문이며, string.upper, string.lower, string.split, string.count 등의 다양한 스트링 함수에 텍스트 스트링을 전달한다.
다음으로 파이썬 1.5.2와 그 이후에 나온 버전 사이의 차이점을 간략히 설명한다. 주요 차이점이 이후 버전에서 스트링 메소드를 사용할 수 있다는 점이기 때문에, 같은 코드를 스트링 모듈 함수 대신에 스트링 메소드를 사용하여 작성한 새로운 예제를 포함하였다.
세 번째 설명과 예제에서는 다른 데이터 타입을 스트링으로 변환하기 위한 스트링 모듈의 부가적인 기능을 설명하였다. 마지막 단락에서는
int와
float 함수를 스트링 모듈 counterpart의 대안으로 사용하는 방법을 설명하였다.
두 번째 예로 나는 "Network Protocols"라는 챕터의 "The cgi Modules"라는 섹션을 들 것이다. 두 개의 짤막한 단락으로 1.5 페이지 정도 분량으로 설명한 후 목록을 제시하였다. 이 목록은 특정 디렉토리에 있는 파일의 목록을 반환하는 CGI 스크립트이다. 이것은 QUERY_STRING을 잡기 위해 os.environ.get을 사용하고, 파일명을 얻기 위해 os.environ.get을, 스트링을
깨끗이 하기 위해 cgi.escape를 사용한다.
예제가 깨끗하게 작성되고 실행도 잘 되었지만, cgi 모듈의 함수를 모두 다루고 있지 않아서 실망했다. 예를 들어서 CGI 형식의 데이터를 해석(parse)할 수 있는 모듈을 다루고 있었지만, 그에 대한 설명이나 예제가 나와있지 않았다.
CD는 논리적으로 편집되어 있다. 책에 있는 모든 스크립트를 포함하고 있으며, 윈도우 와 x86 리눅스(RPM 포맷)에서 사용할 수 있는 파이썬 2.0과 PythonWorks Pro 1.2 데모 버전도 있다.
PythonWorks는 파이썬을 위한 통합 개발 환경(IDE)이다. 포함된 소프트웨어는 데모 모드로 실행되기 때문에 포함된 프로젝트로 할 수 있는 일에 제한이 있을 것이다. 하지만 Pythonware 웹사이트에서 일정 기간 동안 사용할 수 있는 평가판을 무료로 내려받을 수 있다. 이것을 통해 프로젝트에서 어떻게 실행되는지 알 수 있을 것이다.
전반적으로 이 책은 실용적인 정보로 꾸며져 있다. 내용도 대체로 정확했다(내가 찾은 오탈자는 문법적인 것이나 중요하지 않은 것밖에 없다). 독자가 의문을 가질 모든 문제에 답을 하고 있지는 않다. 하지만 책의 크기도 적절하고 읽기도 쉽다는 점에서 만족할 만 하다. 다른 프로그래밍 언어 관련 책에는 코드가 많이 나와 있지만 코드가 어떤 역할을 하며 서로 어떻게 연관되어 있는지는 설명하고 있지 않다. 하지만 이 책에서는 주제를 설명하고 그에 대한 예를 들어 놓아서 이해하기 쉽다.
이 책에서 모든 것을 설명해야 한다고 생각하지 않는다면, 이 책을 읽고 만족할 것이다.
필 휴그스는
Linux Journal의 발행인이다.