메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

효율적인 코드 작성을 위한 상세한 설명 - 고성능 파이썬

rosas***

|

2021-05-23

고성능 파이썬(2판)

자료구조별 특성부터 멀티코어·클러스터의 활용과 다양한 실무 노하우 등 ‘더 빠르고 확장성 있는 파이썬 개발에 필요한 고급 기법’을 다룬 책

  • 저자 : 미샤 고렐릭 , 이안 오스발트
  • 번역 : 오현석
  • 출간 : 2021-05-10



#한빛리뷰단 5월의 책은 #고성능파이썬 입니다.

 

코딩과 알고리즘을 공부하다보면 어떻게 작성해야 훨씬 더 빠르고 안정적으로 코드가 동작할지 고민하게 됩니다. 또한 조금 더 깔끔하게 코드를 수정할 수는 없을까.. 고민하기도 하구요. 실제로 시험에서도 코딩 문제에 최대 실행시간이 언급되어 있습니다. 카카오와 삼성 입사시험 등에서 코딩 테스트를 치를 때도 수만개의 데이터를 처리하는 실행 시간이 무척 중요한데요, 가끔 파이썬은 맞는 코드를 작성하고도 실행 시간을 충족하지 못해 실패하는 사례가 종종 있다고 합니다. 또한 실행 시간 뿐 아니라 어떻게 해야 메모리를 효율적으로 사용할 수 있을지도 정말 중요한 문제인데요, 고성능 파이썬은 이러한 부분에 대해서 상세하게 배울 수 있는 책입니다. 코딩에 관한 기본 문법을 다루지 않기에 파이썬을 어느 정도 공부한 후에 읽으시면 좋습니다.

 

맨 처음에는 컴퓨터 시스템과 연산 장치, 메모리 장치 등의 동작 과정과 특징들을 배울 수 있습니다. 그리고 그에 근거한 파이썬의 효율적인 작업 절차와 좋은 프로그램을 작성하는 방법들을 알려줍니다. 첫 단원은 가볍고 흥미롭게 읽을 수 있는 부분입니다.

 

2장에서는 프로파일링으로 병목 지점을 찾는 방법을 다루고 있습니다. 프로파일링이란 프로그램이 실행되는 동안 CPU와 메모리 사용량 및 특정 함수의 실행 시간 등을 추적하는 것인데요, 이를 도와주는 프로파일링 툴이 있기도 합니다. 고성능 파이썬에서는 프로파일 하는 방법은 물론 최대한 실수하지 않고 효과적으로 프로파일하는 방법을 가르쳐줍니다. 일반적으로 많이 사용되는 time.time()과 데커레이터 등을 활용한 시간 측정 방법을 알려주고, 함수를 한 줄씩 프로파일하는 line_profiler를 활용하는 방법도 있고, CPU 캐시가 얼마나 효율적으로 활용되었는지 알 수 있는 perf stat 사용법도 알려줍니다. memory_profiler를 사용하면 RAM 사용내역을 차트로 확인할 수도 있습니다.

 

이렇게 프로파일링하는 방법을 배우고 나면 파이썬 코드에 대하여 어떻게 작성하는 것이 효율적이고 유사한 코드들의 차이점과 정확한 용도 등을 배울 수 있습니다. 리스트와 튜플, 딕셔너리와 집합인 set, 행렬과 벡터 계산 등을 비교 설명하는데요, 크게 고민하지 않고 썼던 코드들을 어떻게 사용해야 할지 정확하게 배울 수 있어 정말 좋았습니다. 코드를 빠르게 처리하기 위해 기계어로 컴파일하는 방법도 다루고 있습니다. 이를 위해 사이썬과 numba, pypy 등을 배워봅니다. 사이썬을 사용하기 위해서는 C언어를 일정 부분 다룰 줄 알아야 합니다. 또한 비동기 입출력과 멀티프로세싱 모듈을 배우고 RAM을 덜 사용하는 방법도 가르쳐 줍니다. 마지막엔 저자가 현장에서 직접 코딩하고 데이터를 다루며 알게 된 내용들을 이야기합니다.

 

어느 정도 파이썬 코드를 작성할 수 있다면 또는 현재 프로젝트 작업을 진행하고 있다면 고성능 파이썬을 꼭 읽어보시기를 추천드립니다. 우리가 일반적으로 배울 수 없었던 귀한 내용들이 가득하며 이 내용을 읽지 않고 코드를 작성했을 때는 얼마나 비효율적이었을지를 다시 돌아보게 하는 책입니다. 난이도가 있어 쉽게 읽을 책은 아니지만 그만큼 더 중요하고 소중한 책이 될 것 같습니다.



KakaoTalk_20210523_143350096.jpg

 

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?