파이썬을 처음 접했을 땐 크롤링 스크립트 정도에 일단 돌아가긴 하는 코드에 만족했다. 그러다 어느 순간부터는 이게 맞는 건가 싶고 더 나은 코드를 짜고 싶은 욕심이 있었다. 시간이 지나며 글과 책을 읽고 프로젝트와 라이브러리를 만들고 다른 개발자들과 협업하면서 어느 정도 기준을 세울 수 있었지만, 항상 파이썬과 관련된 정보와 자료는 무척 많은데 그중에서 어떻게 하면 파이썬다운 코드를 짤 수 있고, 그 상황에 어울리는 코드를 짤 수 있는지 다음으로 가기 위한 정리된 정보를 잘 찾을 수 없어 아쉬웠다.
그렇게 많은 정보 중 처음부터 가장 쉽게 접근할 수 있는 매체는 책이었다. 파이썬 공식 문서, 다양한 아티클, 오픈소스 라이브러리의 코드 등도 많은 도움이 됐지만 아무래도 잘 집약된 정보를 쉽게 접하기엔 책이 가장 부담 없었다. 하지만 시중엔 많은 파이썬 책들이 있었고 분야도 머신러닝, 딥러닝, 알고리즘, 웹 서버, 데이터 분석, GUI, 게임까지 무척 다양한 갈래로 나뉘어 있어 무엇이 나에게 도움이 되는지는 읽어보고 알 수밖에 없었다.
그러면서 어느 정도 보편적으로 도움이 되는 책 혹은 특정 분야를 더 깊게 들어갈 때 도움이 되는 책 정도로 구분해왔는데 그중 동료들이 파이썬 책을 추천해 달라고 하면 항상 추천했던 몇몇 책에 마음에 들었던 책 몇 권을 더해 추천리스트를 만들었다. 모든 책을 읽어보지도 못했고 사람마다 도움이 되는 정도가 분명 다르기에 아래에 나온 책들만이 좋다기보단 더 나은 코드를 작성하고 싶은 사람들에게 하나의 참고 글이 되었으면 한다.
각 이미지엔 출판사 블로그의 책 소개 글, 출판사 판매 페이지 혹은 인터넷 구매처 링크가 걸려있습니다.
파이썬을 파이썬답게 사용하기 위해
파이썬 코딩의 기술
파이썬을 더 알고 싶은 사람들에게 가장 먼저 추천하는 레퍼런스 성격의 책
코드를 더 잘 짜게 하는 책이라기보단 파이썬에 어떤 특징들을 어떻게 더 잘 사용할 수 있는지 알려준다
흔히 마주할 수 있는 상황에서 better way가 뭔지 알려준다
코드를 짜다가 '아 이 문제에 어울리는 파이썬 속성이 있었는데' 떠오를 때 참고하기 좋다
책이 작고 두껍지 않아 내용을 외우기보단 어렴풋이 실마리 정도만 얻어두고 나중에 문득 이게 필요할 거 같다는 순간에 다시 펼쳐 보기 좋다
파이썬을 여행하는 히치하이커를 위한 안내서
6가지 파이썬 오픈소스 프로젝트를 통해 더 나은 코드가 무엇인지, 왜 이런 코드를 작성했는지, 간간이 the zen of python을 예로 설명한다
매우 빈번하게 사용되는 딕셔너리에 관한 내용도 다 좋고 실제 코드에서도 많이 쓰이는 내용이다
파이썬 핵심 개발자들과의 인터뷰
흥미로운 파이썬 생태계 이야기
내가 왜 파이썬을 쓰는지 돌아보며 파이썬의 문법보단 파이썬 그 자체에 대한 이해를 넓힐 수 있다
파이썬 생태계에 기여하는 사람들의 이야기, 생각을 볼 수 있고 내가 자주 쓰는 도구가 어떤 이념에 의해 만들어지는지 알 수 있다
평소 관심 갖던 분야가 아닌 부분도 흥미롭게 들을 수 있다
장마다 흥미로운 토픽이 많이 소개돼서 스스로 찾아보고 더 배울 부분이 있다는 실마리를 제공한다
파이썬 인 프랙티스
1~3장에선 팩토리, 빌더, 프로토타입, 싱글턴, 어댑터, 파사드, 커맨드 패턴 등 다양한 디자인 패턴을 파이썬 코드로 설명한다
디자인 패턴에 너무 몰두하는 걸 추천하지 않지만, 디자인 패턴이 너무 궁금하고 이를 파이썬으로 어떻게 풀어낼 수 있을까 고민할 때 감을 잡는 데 도움이 됐었기에 가볍게 읽을 목적으로 추천한다
'어떤 디자인 패턴이 있고 이렇게 하면 어떤 패턴 이름 저렇게 하면 저런 패턴 이름이구나', '나중에 이런 디자인 패턴을 써봐야지'라고 생각하기보단 어떤 문제를 해결하기 위한 패턴이구나 정도로만 받아들이기에 좋다
안티 패턴에 대한 경고가 없고 좋은 코드만 있진 않기 때문에 깊게 보기보단 '대략 이런 느낌의 패턴이 있구나' 정도로만 참고하길 추천한다
4장부터 나오는 동시성, optimization, graphic에 관한 내용은 크게 인상 깊지 않았다
실전 파이썬 프로그래밍
얇아서 부담 없이 읽을 수 있는 책
중간중간 있는 개발자 인터뷰가 흥미롭고 영감을 준다
오픈소스 프로젝트에 관심 있는 사람이라면 더 도움이 되겠지만 5년 전 책이라는 점이 조금 아쉽다
실무에 도움이 되기보단 환경구성, 문서화, 패키징 등 파이썬을 쓸 때 무엇이 정석인지 가이드해준다
AST, optimization 이후의 내용은 가볍게 훑고 나중에 그게 필요해질 때 다시 읽어보면 좋을 내용이다
파이썬 클린코드
『파이썬 코딩의 기술』과 비슷한 내용이나 트릭보단 좀 더 좁은 범위의 개념을 다룬다
1장을 포매팅으로 다루는데 black을 소개하고, unittest뿐 아니라 pytest도 다룬다. 책의 구성 자체는 클래식해 보일 수 있지만 내용은 최신이다.
디스크립터 부분은 라이브러리를 만들게 아닌 이상 '이런게 있구나' 정도로만 가볍게 읽기 좋다
파이썬을 파이썬답게 쓰는 방법을 잘 소개해준다
디자인 패턴과 클린 아키텍처 챕터가 짧지만 감 잡기에 좋다
실전 스케일링 파이썬 프로그래밍
파이썬의 스레드, 프로세스, 이벤트 루프 개념이 궁금하다면 보기 좋다
분산처리와 그때 고려해야 할 부분들을 소개한다
좀 더 깊게 알고 싶을 때
전문가를 위한 파이썬
사람들이 더 깊은 파이썬 내용을 원할 때 추천하는 책
책이 무척 두껍고 굳이 알 필요가 있을까 하는 부분까지 깊게 다룬다
끝으로
파이썬을 벗어나 프로그래밍의 개념을 다룬 책들도 도움이 됐지만 그건 다른 글로 기회가 될 때 다뤄볼까 한다. 요즘엔 파이썬보단 go를 사용하며 동적 타입 언어와는 또 다른 재미를 느끼고 있지만 가장 편하게 짤 수 있는 건 아직까진 역시 파이썬이긴 하다. 위에서 추천한 책 이외에도 많은 책과 매체가 있겠지만 누군가에겐 이 글이 도움이 되길 바란다.