winterjung blog


파이썬 중급자를 위한 책 추천

파이썬을 처음 접했을 땐 크롤링 스크립트 정도에 일단 돌아가긴 하는 코드에 만족했다. 그러다 어느 순간부터는 이게 맞는 건가 싶고 더 나은 코드를 짜고 싶은 욕심이 있었다. 시간이 지나며 글과 책을 읽고 프로젝트와 라이브러리를 만들고 다른 개발자들과 협업하면서 어느 정도 기준을 세울 수 있었지만, 항상 파이썬과 관련된 정보와 자료는 무척 많은데 그중에서 어떻게 하면 파이썬다운 코드를 짤 수 있고, 그 상황에 어울리는 코드를 짤 수 있는지 다음으로 가기 위한 정리된 정보를 잘 찾을 수 없어 아쉬웠다.

python keyword search result
파이썬으로 검색하면 나오는 수많은 책들

그렇게 많은 정보 중 처음부터 가장 쉽게 접근할 수 있는 매체는 책이었다. 파이썬 공식 문서, 다양한 아티클, 오픈소스 라이브러리의 코드 등도 많은 도움이 됐지만 아무래도 잘 집약된 정보를 쉽게 접하기엔 책이 가장 부담 없었다. 하지만 시중엔 많은 파이썬 책들이 있었고 분야도 머신러닝, 딥러닝, 알고리즘, 웹 서버, 데이터 분석, GUI, 게임까지 무척 다양한 갈래로 나뉘어 있어 무엇이 나에게 도움이 되는지는 읽어보고 알 수밖에 없었다.

그러면서 어느 정도 보편적으로 도움이 되는 책 혹은 특정 분야를 더 깊게 들어갈 때 도움이 되는 책 정도로 구분해왔는데 그중 동료들이 파이썬 책을 추천해 달라고 하면 항상 추천했던 몇몇 책에 마음에 들었던 책 몇 권을 더해 추천리스트를 만들었다. 모든 책을 읽어보지도 못했고 사람마다 도움이 되는 정도가 분명 다르기에 아래에 나온 책들만이 좋다기보단 더 나은 코드를 작성하고 싶은 사람들에게 하나의 참고 글이 되었으면 한다.

각 이미지엔 출판사 블로그의 책 소개 글, 출판사 판매 페이지 혹은 인터넷 구매처 링크가 걸려있습니다.

파이썬을 파이썬답게 사용하기 위해

파이썬 코딩의 기술

book image
브렛 슬라킨 지음, 김형철 옮김, 길벗(2016)
  • 파이썬을 더 알고 싶은 사람들에게 가장 먼저 추천하는 레퍼런스 성격의 책
  • 코드를 더 잘 짜게 하는 책이라기보단 파이썬에 어떤 특징들을 어떻게 더 잘 사용할 수 있는지 알려준다
  • 흔히 마주할 수 있는 상황에서 better way가 뭔지 알려준다
  • 코드를 짜다가 '아 이 문제에 어울리는 파이썬 속성이 있었는데' 떠오를 때 참고하기 좋다
  • 책이 작고 두껍지 않아 내용을 외우기보단 어렴풋이 실마리 정도만 얻어두고 나중에 문득 이게 필요할 거 같다는 순간에 다시 펼쳐 보기 좋다

파이썬을 여행하는 히치하이커를 위한 안내서

book image
케네스 라이츠, 타냐 슐로서 지음, 김형철 옮김, 인사이트(2017)
  • 6가지 파이썬 오픈소스 프로젝트를 통해 더 나은 코드가 무엇인지, 왜 이런 코드를 작성했는지, 간간이 the zen of python을 예로 설명한다
  • 파이썬 코드 스타일과 컨벤션에 대한 내용을 잘 다루고 있어 일관된 코드를 짤 때 도움이 된다
  • 다른 언어만 쓰다가 파이썬을 쓰려는 사람에게 환경 구성부터 프로젝트 구성, 파이썬의 스타일은 무엇인지 알려줘 생소한 환경에 적응이 필요할 때 보기 좋다
  • 보통 책에선 잘 다루지 않는 패키징 부분도 꽤 잘 다뤄주니 오픈소스 프로젝트에 관심 있는 사람에게 좋다
    • 물론 약 2년 정도 된 책이다 보니 twine에 대한 언급이나 새로 바뀐 pypi 언급은 없지만 참고해두기 좋다
  • 파이썬으로 만들 수 있는 건 많으나 특히 CLI, GUI, 웹 애플리케이션을 위한 툴, 라이브러리 소개에 관한 내용 대부분은 지금도 유용하다
  • 책의 후반부에선 분야별로 참고할만한 라이브러리들을 간략하게 다루는데 파이썬의 지대넓얕(지적 대화를 위한 넓고 얕은 지식) 느낌으로 읽기 좋다

슬기로운 파이썬 트릭

book image
댄 베이더 지음, 전석환 옮김, 인사이트(2019)
  • 두껍지 않고 읽기 편해 『파이썬 코딩의 기술』만큼 추천하는 책
  • 앞서 소개한 『파이썬 코딩의 기술』과 비슷한 구조지만 좀 더 실용적인 예제가 많다
  • assert 대신 if 문을 사용하라는 부분이 인상적이다
  • 매우 빈번하게 사용되는 딕셔너리에 관한 내용도 다 좋고 실제 코드에서도 많이 쓰이는 내용이다

파이썬 핵심 개발자들과의 인터뷰

book image
마이크 드리스콜 지음, 조인석 옮김, 터닝포인트(2019)
  • 흥미로운 파이썬 생태계 이야기
  • 내가 왜 파이썬을 쓰는지 돌아보며 파이썬의 문법보단 파이썬 그 자체에 대한 이해를 넓힐 수 있다
  • 파이썬 생태계에 기여하는 사람들의 이야기, 생각을 볼 수 있고 내가 자주 쓰는 도구가 어떤 이념에 의해 만들어지는지 알 수 있다
  • 평소 관심 갖던 분야가 아닌 부분도 흥미롭게 들을 수 있다
  • 장마다 흥미로운 토픽이 많이 소개돼서 스스로 찾아보고 더 배울 부분이 있다는 실마리를 제공한다

파이썬 인 프랙티스

book image
마크 서머필드 지음, 서형국, 오현석 옮김, 위키북스(2014)
  • 1~3장에선 팩토리, 빌더, 프로토타입, 싱글턴, 어댑터, 파사드, 커맨드 패턴 등 다양한 디자인 패턴을 파이썬 코드로 설명한다
  • 디자인 패턴에 너무 몰두하는 걸 추천하지 않지만, 디자인 패턴이 너무 궁금하고 이를 파이썬으로 어떻게 풀어낼 수 있을까 고민할 때 감을 잡는 데 도움이 됐었기에 가볍게 읽을 목적으로 추천한다
  • '어떤 디자인 패턴이 있고 이렇게 하면 어떤 패턴 이름 저렇게 하면 저런 패턴 이름이구나', '나중에 이런 디자인 패턴을 써봐야지'라고 생각하기보단 어떤 문제를 해결하기 위한 패턴이구나 정도로만 받아들이기에 좋다
  • 안티 패턴에 대한 경고가 없고 좋은 코드만 있진 않기 때문에 깊게 보기보단 '대략 이런 느낌의 패턴이 있구나' 정도로만 참고하길 추천한다
  • 4장부터 나오는 동시성, optimization, graphic에 관한 내용은 크게 인상 깊지 않았다

실전 파이썬 프로그래밍

book image
줄리안 단주 지음, 김영후 옮김, 인사이트(2014)
  • 얇아서 부담 없이 읽을 수 있는 책
  • 중간중간 있는 개발자 인터뷰가 흥미롭고 영감을 준다
  • 오픈소스 프로젝트에 관심 있는 사람이라면 더 도움이 되겠지만 5년 전 책이라는 점이 조금 아쉽다
  • 실무에 도움이 되기보단 환경구성, 문서화, 패키징 등 파이썬을 쓸 때 무엇이 정석인지 가이드해준다
  • AST, optimization 이후의 내용은 가볍게 훑고 나중에 그게 필요해질 때 다시 읽어보면 좋을 내용이다

파이썬 클린코드

book image
마리아노 아나야 지음, 김창수 옮김, 터닝포인트(2019)
  • 『파이썬 코딩의 기술』과 비슷한 내용이나 트릭보단 좀 더 좁은 범위의 개념을 다룬다
  • 1장을 포매팅으로 다루는데 black을 소개하고, unittest뿐 아니라 pytest도 다룬다. 책의 구성 자체는 클래식해 보일 수 있지만 내용은 최신이다.
  • 디스크립터 부분은 라이브러리를 만들게 아닌 이상 '이런게 있구나' 정도로만 가볍게 읽기 좋다
  • 파이썬을 파이썬답게 쓰는 방법을 잘 소개해준다
  • 디자인 패턴과 클린 아키텍처 챕터가 짧지만 감 잡기에 좋다

실전 스케일링 파이썬 프로그래밍

book image
줄리안 단주 지음, 김현욱 옮김, 인사이트(2018)
  • 파이썬의 스레드, 프로세스, 이벤트 루프 개념이 궁금하다면 보기 좋다
  • 분산처리와 그때 고려해야 할 부분들을 소개한다

좀 더 깊게 알고 싶을 때

전문가를 위한 파이썬

book image
루시아누 하말류 지음, 강권학 옮김, 한빛미디어(2016)
  • 사람들이 더 깊은 파이썬 내용을 원할 때 추천하는 책
  • 책이 무척 두껍고 굳이 알 필요가 있을까 하는 부분까지 깊게 다룬다

끝으로

파이썬을 벗어나 프로그래밍의 개념을 다룬 책들도 도움이 됐지만 그건 다른 글로 기회가 될 때 다뤄볼까 한다. 요즘엔 파이썬보단 go를 사용하며 동적 타입 언어와는 또 다른 재미를 느끼고 있지만 가장 편하게 짤 수 있는 건 아직까진 역시 파이썬이긴 하다. 위에서 추천한 책 이외에도 많은 책과 매체가 있겠지만 누군가에겐 이 글이 도움이 되길 바란다.