파이썬은 누구나 쉽게 데이터 전처리나 데이터 분석에 사용할 수 있다. 하지만 파이썬이 너무 고수준 언어이기 때문에 이를 실행해주는 운영체제나 컴퓨터 시스템 전반을 충분히 이해하지 못할 때가 많다고 한다. 데이터 과학 즉 머신러닝 분야에서 다루는 데이터의 양이 일반 개발자가 다루는 데이터의 양보다 훨씬 많으므로 대용량 자료구조를 처리하는 과정에서 병렬 처리의 어려움이나 메모리 장법, 성능 저하등을 더 자주 겪게 된다. 따라서 저수준의 최적화 기법이나 시스템을 이해하는 것이 필요한데, 그 부분을 메꿔줄 수 있는 방법이 바로 고성능 파이썬책이다.
그러므로 이 책의 대상 독자는 파이썬을 충분히 사용해보았으며, 특정 부분이 왜 느린지 생각해 본적이 있는 독자들을 대상으로 한다. 또한 CPU 성능 관련 문제를 겪는 독자가 이 책의 주요 대상이다. 책에서 주요 다루는 내용은 컴퓨터의 저수준 동작 방식, 리스트와 튜플, 사전과 셋, 이터레이터 등이 있다.
나같은 경우에도 파이썬 코드를 작성하다가 리스트와 튜플의 미묘한 속도 차이를 겪었었어서 이 부분이 굉장히 궁금해서 보았더니 리스트는 동적인 배열이고, 튜플은 정적인 배열이기 때문에 튜플은 파이썬 런타임에서 캐시하게 되어 사용할 때마다 커널에 메모리를 요청하지 않아도 된다고 한다. 이 책을 통해 오래전에 그냥 지나쳤던(?) 호기심을 해결해볼 수 있었다.
또한 마지막 장에서는 '현장에서 얻은 교훈'을 통해 대량의 데이터를 다루며 속도가 결정적인 상황에서 파이썬을 사용 중인 여러 성공적인 기업의 사례를 소개하고 있는데, 이 사례들은 해당 기업에서 다년간 근무한 핵심 인물들이 사례를 작성하였다. 따라서 이들은 자신의 기술적인 선택뿐만 아니라 그 과정에서 어렵게 얻은 지혜도 공유하고 있기 때문에, 파이썬 고수들에게 조언 받는 기분을 느낄 수 있었다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
출처: https://eehoeskrap.tistory.com/549 [Enough is not enough]
'Book Review' 카테고리의 다른 글
[Book Review] 업무에 바로 쓰는 SQL 튜닝 (0) | 2021.07.25 |
---|---|
[Book Review] 데이터가 뛰어노는 AI 놀이터, 캐글 (2) | 2021.06.20 |
[Book Review] 실전 아파치 카프카 (0) | 2021.04.17 |
[Book Review] 처음 배우는 셸 스크립트 (0) | 2021.03.16 |
[Book Review] 코딩진로 (적극 추천) (2) | 2021.02.27 |