사람마다 다르겠지만
저는 데이터 분석을 하며 시간이 가장 많이 소비되는 부분은
디버깅 즉, 틀린 부분 찾기를 수행할 때 입니다.
디버깅에서 파이썬은 다른 언어들과 비교하여 굉장한 장점을 가지고 있습니다. 하지만 디버깅이 다른 언어에 비해 편하다는 장점을 가지는 대신 다른 언어에 비해 느립니다.
파이썬의 한계라 생각하고
그럼 이런 단점을 느림의 미학으로 치부하고 넘어가야 하느냐?
좋은 장비를 사용하면 어느정도 커버가 가능하겠지요..
그러기에는 주위 환경이 받쳐 주질 않습니다. 내 연봉 보다도 비싼 장비를 구입 할 순 없잖아요.
그럼 어찌 해야 할까?
결국 제가 공부해야 합니다.
내가 작성한 코드에서 어느 부분이 느린지, 왜 느린지, 어떻게 수정하여 최적화하면 좋을지를 스스로 해보고 알아야 합니다. 소위 삽질이라 하죠. 삽질을 통해서 고성능을 뽑아낼 경험이 쌓여야 합니다.
이 책은 저자의 경험의 결과를 잘 설명하고 있습니다.
그것도 재밌는 예시들을 들며(줄리아 집합, 크롤링, 클러스터링, 베이지안 등) 설명하고 있습니다.
어느 부분이 느린지, 왜 느린지를 따져가며 알려줍니다.
그리고 코드도 오픈되어 있어서 따라하며 연습하기 좋습니다.
1장에서 6장 까지는 파이썬의 여러 자료형에 대해 살펴봅니다.
자료형에 따라 데이터가 어떻게 이동하고 사용 되는가를 설명하고 있어서 읽고 나서 출퇴근 시간에 생각해보기 좋습니다.
저는 이 부분을 읽으면서 내가 정말 아무것도 모르고 코드를 작성하였구나 라는 느낌을 받았습니다. 실질적인 도움이 많이 되었습니다.
나머지 챕터는 파이썬에 사용할 수 있는 스킬들에 대해 설명하고 있습니다.
Cython, PyPy, Numpy, DAWG(Directed Acyclic Word Graph) 등을 설명하고 있어 참고하기 좋습니다.
하지만... 단점도 있습니다. 완벽한 비급서란 존재하지 않죠.
책의 단점으로는 한권에 많은 내용이 담겨 있는 반면에 한 내용에 대해 깊지 않습니다.
중간중간 음영처리가 되어있는 NOTE 부분이 생각할 거리를 던져주는데 좀 부족합니다.
어느 정도 맛을 보여준 후 '나머지는 너가 공부해봐' 느낌이 납니다. 뒷부분으로 갈 수록 그런 느낌이 많이 듭니다.
하지만 이건 제가 "파이썬 애송이" 이기 때문에 생기는 단점이라 생각합니다.
이제 한줄 평으로 정리하겠습니다.
만약 당신이
파이썬이라는 언어가 있다던데 한번 배워볼까? 라는 생각을 가지고 있다면 추천드리지 않습니다.
하지만 만약 당신이
파이썬 내가 써보니깐 편하고 좋은데 뭐가 부족하단 말야.. 라는 생각을 가지고 있다면 적극 추천드립니다.
감사합니다.