qor***
2021-02-21

파이썬 고수가 되고 싶은 개발자를 위한 실전 프로그래밍 지침서. 파이썬의 기능과 능력을 제대로 활용해 프로그램을 체계적으로 구축하는 방법을 소개한다. 문서화, 버전 관리, 시간대 설정 방법, 패키징, 테스트, 배포 등 개발에 필요한 필수 지식뿐 아니라 유명 파이썬 개발자들의 경험담까지 담았다.
소스코드 품질평가 기업인 티오베는 매달 프로그래밍 언어 순위인 프로그래밍 커뮤니티 지수 (티오베 인덱스)를 발표하고 있다. 이 지수를 보면 관련 분야 종사자들이 어떤 언어를 가장 많이 사용하는지, 어떤 언어와 관련되어 커뮤니티 활동이 왕성한지를 알 수 있다. 2021년 2월 발표된 티오베 인덱스를 보면 지난 달에서 1,2위가 역전된 것을 알 수 있다. 1위에는 C가, 2위에는 Java가 랭크되었는데, Java의 하락세가 두드러졌다. 최근의 트렌드를 보면 Java의 점유률은 전반적인 하락세를 유지하고 있다. 오라클의 라이선스 정책에 따라 많은 개발자들이 Java에 대해 예전 같은 사랑을 보내고 있지 않고, Java의 대체재들도 많아 지고 있기 때문으로 생각된다.
파이썬(Python)은 이 티오베 인덱스에서 2019년 중반부터 3위의 자리를 꾸준히 유지하고 있다. 2020년에 Java를 제치고 2위의 자리에 올라선 적도 있고, 현재 2위 Java와 그 격차가 크지 않은 수준이다. Java 가 전반적으로 하향세라면 파이썬은 우상향 그래프를 나타내고 최근 그 경사가 급격한 편이다. 그만큼 파이썬의 위세가 대단하다 할 수 있다.
이렇게 파이썬이 널리 사용되고 인기가 있다 보니 관련 서적도 정말 다양하게 출간되고 있다. 필자도 파이썬과 관련되어 여러 책을 리뷰한 적이 있다. 대부분의 프로그래밍 언어 관련 서적이 그렇듯 파이썬 관련 책들도 기초적인 내용을 다루는 책들이 많다. 입문 서적은 프로그래밍 언어의 아주 기본적인 내용부터 업무에 적용할 수 있는 방법들을 체계적으로 소개하기 때문에, 꼭 필요한 부분이다. 하지만 어느 정도 언어에 익숙해지게 되면, 나오는 고민이 바로 더 나은 프로그래밍 방법에 대한 것이다. 효율적인 프로그래밍 방법을 찾게 되고, 프로그래밍 언어의 철학에 부합되는 설계와 개발 방법을 적용하고 싶어지고, 최적화를 통해 성능을 높이기를 간절히 원하게 된다.
20년 가까이 자유 소프트웨어 해커로 활동하며 파이썬으로 소프트웨어를 개발해 온 쥘리앵 당주(Julien Danjou)가 집필한 ‘진지한 파이썬’ (원제: Serious Python) 은 이러한 욕구에 부합하는 책이다. 이 책의 부제는 ‘파이썬 작동 원리에서 확장, 테스트, 배포, 최적화까지’로 중급을 넘어 고급 파이썬 개발자를 지향하는 이들을 대상으로 하고 있다.
책은 모두 13개의 챕터로 구성되어 있다. 일반적으로 개념서나 입문서는 프로그래밍 언어의 특징이나 기능을 하나씩 소개해 나가며 문제를 해결하는 과정으로 집필되기 때문에 순서대로 읽는 것을 권장하지만, 이 책은 기본기가 다져진 개발자를 대상으로 하는 만큼 꼭 순서대로 읽을 필요는 없어 보인다. 자신이 관심 있어 하는 분야에 대해 먼저 읽어보아도 내용을 이해하는 데 무리가 없다. 책이 명시적으로 구분되어 있는 것은 아니지만, 주제의 성격을 보면 책의 전반부와 후반부로 나누어 볼 수 있다. 책의 전반부에서는 파이썬을 이용한 프로젝트를 진행하면서 고려해야 할 사항과 문서화 방법 등에서부터, 시간 정보와 시간대, 개발된 소프트웨어 배포방법, 단위 시험 방법 및 테스트 정책, 메서드와 데커레이터에 대해 다루고 있다. 책의 후반부는 좀더 고급 주제를 다루고 있는데, 함수형 프로그래밍, 리스프 계열 속성, 성능과 최적화, 구조 및 서비스의 확장 방법, 관계형 데이터 베이스 관리에 대해 심도 있는 이야기를 전하고 있다. 책의 마지막 챕터인 13장에서는 효율적으로 코딩하기라는 제목으로 파이썬 2와 3 모두 호환되는 코드 작성법, 리스프 유형의 함수형 프로그래밍 기법 적용 방법, 콘텍스트 관리자 사용하기, attr 라이브러리로 반복을 줄일 수 있는 방법에 대해 소개하며 책을 마무리하고 있다.
이 책의 특징 중 하나는, 해당 주제에 대한 전문가와의 인터뷰가 실려 있다는 것이다. 모든 챕터에 대해서 제공하는 것은 아니지만, 1장에서 조슈아 할로, 2장은 더그 헬먼, 3장은 크리스토프 드 비엔 과의 인터뷰 등, 모두 전문가 8명의 생생한 이야기를 들을 수 있다. 필자의 경우, 9장에 소개된 폴 탈리아몬테와의 인터뷰가 특히 인상적이었다. 폴은 현재 선라이트 재단(Sunlight Foundation)의 개발자로 2013년에 Hy를 만들었다. 그의 인터뷰를 통해 Hy를 만들게 된 과정과 파이썬과의 호환성, Hy를 사용할 때의 장단점을 보다 친근감 있는 언어로 들을 수 있었다.
보다 효과적으로 파이썬을 이용하여 개발하고자 하는 개발자라면 꼭 한번 읽어보기를 권한다. 생산성 향상과 함께 문제를 해결할 수 있는 새로운 고급 무기를 장착할지도 모를 일이다.