728x90

안녕하십니까, 간토끼입니다.

 

오늘은 한빛미디어의 <나는 리뷰어다 2021> 일환으로 받은 진지한 파이썬에 대한 서평을 작성해보도록 하겠습니다.

 

 

주로 머신러닝에 관한 책 위주로 다루던 것과 다르게 이번에 받은 책은 프로그래밍에 관한 책입니다.

특히 최근 핫한 프로그래밍 언어인 파이썬(Python)에 대해 깊게 다룬 책인데요.

머신러닝과 파이썬은 뗄레야 뗄 수 없는 관계이기 때문에 파이썬에 대해 아는 것 또한 굉장히 중요합니다.

 

결국 우리가 배운 이론을 실제 데이터에 적용하기 위해서는 파이썬이든 R이든 어떠한 Tool을 이용해야하며,이때 이 Tool을 능숙하게 잘 사용할수록 보다 다채로운 분석을 할 수 있겠죠.

R보다 범용성이 넓은 파이썬의 특성상 파이썬의 기능을 잘 알수록 더욱 잘 활용할 수 있다고 합니다.

 

저도 프로그래밍은 개인적으로 약하다고 생각해서요.

저같은 사람들에게 이 책은 "파이써닉"하게 프로그래밍하게 만들어주는 책입니다.


Q. 이 책은 어떤 책인가요?

파이썬(Python) 입문자를 넘어 중급, 고급으로 나아가고 싶은 개발자를 위한 실전 프로그래밍 지침서입니다.

대부분 공감하시겠지만, 전문 서적 중 입문서라고 칭하는 책들은 굉장히 많습니다.

특히나 입문자가 많아지는 요즈음, 그러한 입문서 또한 같이 늘어나는 추세이고요.

중급자를 위한 서적도 같이 늘어나면 좋겠지만, 실상 그렇지 않은 경우가 다반사입니다.

오히려 기하급수적으로 중급 이상의 책이 감소하고 있죠.

(어려운 책은 안 읽으려는 대부분의 사람들의 특성 같기도.. 하고요.... ㅎㅎ)

 

이러한 트렌드는 좀 더 공부하고 싶은 사람들에게 좋은 사인은 아닙니다.

좋은 책이 있다고 하더라도 거의 대부분이 원서 위주고, 번역서라고 하더라도 어색한 번역체가 가득하고요.

 

이때 진지한 파이썬은 파이썬으로 15년 넘게 개발해온 저자가 파이썬의 기능과 능력을 활용해 프로그램을 체계적으로 구축하는 방법을 소개합니다.

단순히 파이썬의 문법과 Loop, 자료구조 등을 배우는 입문서의 수준을 넘어 '파이써닉'하게 사용하는 방법을 알려주는 책입니다.

 

사실 저는 개발자를 꿈꾸는 게 아니기 때문에 프로그래밍 언어를 깊게 다룬다고 하면 '굳이?' 라는 생각은 있습니다.

프로그래밍 언어에 집중할 시간에 통계학 이론이나 수학 책을 살펴보는 게 낫다고 생각하거든요.

이론적 기반이 탄탄하면 이를 코드로 옮기는 건 무리가 아니라고 생각이 들어서요.

 

그러나 파이썬으로 얼마 전 데이터 분석 프로젝트를 하면서 자신감이 좀 꺾였습니다. ㅎㅎ

파이썬을 능숙하게 다루는 팀원을 보면서 많은 걸 배웠거든요.

많은 라이브러리를 유연하게 사용하고, 객체지향이라는 파이썬의 특성을 십분 활용하는 팀원을 통해 파이써닉하게 프로그래밍하는 방법을 익힌다면 AI를 공부할 때 훨씬 도움이 되겠다는 판단이 들어 이 책을 읽기로 하였습니다.

 

실제로 Scikit-learn, Tensorflow, PyTorch 등 머신러닝 라이브러리와 더불어 numpy, pandas, matplotlib 등 데이터 분석에 필수적으로 요구되는 핵심 라이브러리를 사용하기 위해서는 파이썬 사용을 피할래야 피할 수가 없습니다.

그렇기에 파이써닉하게 사용하는 방법을 알아야겠다고 생각이 들었고요.

 

간단하게 목차를 소개하면 다음과 같습니다.


 

더보기

CHAPTER 1 프로젝트 시작하기

1.1 파이썬 버전

1.2 프로젝트 잘 설계하기

1.3 버전 번호 매기기

1.4 코딩 스타일과 자동 검사

1.5 인터뷰: 조슈아 할로와 파이썬에 대해

CHAPTER 2 모듈, 라이브러리, 프레임워크

2.1 임포트

2.2 유용한 표준 라이브러리

2.3 외부 라이브러리

2.4 패키지 설치: pip로 더 많은 것 얻기

2.5 프레임워크 사용 및 선택하기

2.6 인터뷰: 파이썬 코어 개발자 더그 헬먼과 라이브러리에 대해

CHAPTER 3 문서화와 모범 API 사례

3.1 스핑크스로 문서화하기

3.2 마치며

3.3 인터뷰: 크리스토프 드 비엔과 API 개발에 대해

CHAPTER 4 시간 정보와 시간대 다루기

4.1 시간대가 없는 경우의 문제

4.2 datetime 객체 생성하기

4.3 dateutil로 시간대 정보가 있는 시간 정보 생성하기

4.4 시간대 정보가 있는 datetime 객체 직렬화하기

4.5 애매한 시간대 처리하기

4.6 마치며

CHAPTER 5 개발한 소프트웨어 배포하기

5.1 간단하게 설명하는 setup.py의 역사

5.2 setup.cfg를 이용한 패키징

5.3 Wheel 형식의 배포 표준

5.4 작업물 공유하기

5.5 진입점

5.6 마치며

5.7 인터뷰: 닉 코글런과 패키지에 대해

CHAPTER 6 단위 테스트

6.1 테스트 기본 사항

6.2 가상 환경

6.3 테스트 정책

6.4 인터뷰: 로버트 콜린스와 테스트에 대해

CHAPTER 7 메서드와 데커레이터

7.1 데커레이터 사용 방법과 데커레이터의 사용 시기

7.2 파이썬에서 메서드가 작동하는 방법

7.3 정적 메서드

7.4 클래스 메서드

7.5 추상 메서드

7.6 정적, 클래스, 추상 메서드 혼합하기

7.7 마치며

CHAPTER 8 함수형 프로그래밍

8.1 순수 함수 만들기

8.2 제너레이터

8.3 리스트 컴프리헨션

8.4 함수형, 함수, 함수화

8.5 마치며

CHAPTER 9 AST, Hy, 리스프 계열 속성

9.1 AST 살펴보기

9.2 AST 검사로 flake8 확장하기

9.3 Hy 살펴보기

9.4 마치며

9.5 인터뷰: 폴 탈리아몬테와 AST, Hy에 대해

CHAPTER 10 성능과 최적화

10.1 자료구조

10.2 프로파일링으로 내부 동작 이해하기

10.3 효율적으로 함수 정의하기

10.4 정렬된 리스트와 bisect

10.5 네임드튜플과 슬롯

10.6 메모이제이션

10.7 더 빠른 파이썬 PyPy

10.8 버퍼 프로토콜로 제로 복사하기

10.9 마치며

10.10 인터뷰: 빅터 스티너와 최적화에 대해

CHAPTER 11 확장과 구조

11.1 파이썬의 멀티스레딩과 한계

11.2 멀티프로세싱과 멀티스레딩

11.3 이벤트 반응형 아키텍처

11.4 또 다른 방법 asyncio

11.5 서비스 지향 아키텍처

11.6 ZeroMQ로 프로세스 간 통신하기

11.7 마치며

CHAPTER 12 관계형 데이터베이스 관리

12.1 RDBMS과 ORM의 사용 시기

12.2 데이터베이스 백엔드

12.3 플라스크 및 PostgreSQL을 사용한 데이터 스트리밍

12.4 인터뷰: 디미트리 퐁텐과 데이터베이스에 대해

CHAPTER 13 효율적으로 코딩하기

13.1 파이썬 2와 3을 지원하는 six 사용하기

13.2 파이썬으로 구현한 리스프를 사용하여 단일 디스패처 만들기

13.3 콘텍스트 관리자

13.4 attr로 상용구 사용하기

13.5 마치며



Q. 그럼 누구에게 추천하는 책인가요?

파이썬을 주 언어로 사용하는 개발자들에게 추천하는 책입니다.

점프 투 파이썬 등 입문서로 꼽히는 대표 책들을 읽으신 후, 파이써닉하게 알아가고자 하는 분들을 위해 추천하는 책입니다.

 

개인적으로 앞으로 머신러닝, 딥러닝 등을 전문적으로 하실 분들에게도 추천하는 책입니다.

저도 그전까진 파이썬에 대해 깊게 알아갈 생각은 크게 안했는데요.

생각해보니 수많은 파이썬 라이브러리를 잘 다루기 위해서라도 파이써닉하게 다루는 방법을 배울 필요가 있겠더라고요.

물론 R을 위주로 사용하는 분들도 많긴 하겠지만, 요즘 파이썬을 이용해 데이터 분석을 하는 분들도 많으니깐요.

입문서를 넘어서 파이썬 자체에 대해 심도있는 학습을 한다면 코드를 짜는 데 있어 훨씬 효율적이지 않을까 싶습니다.

 

 


Q. 이 책의 장점은 무엇인가요?

첫째는 몇 안 되는 중급 이상의 난이도있는 서적입니다.

입문서가 가득한 서적 속에서 전문적인 내용을 다룬다는 것은 정말 기쁜 일이죠.

라이브리러와 메소드, 데코레이터의 고급 활용법 등과 더불어 개발한 소프트웨어의 테스트부터 성능 최적화, 문서화와 API 관리, 배포 등 개발 프로세스에서 완성도있게 프로그램을 짜고 싶은 분들에게 최적일 것이라 생각합니다.

 

둘째는 어려운 서적임에도 불구하고 깔끔한 번역체입니다.

읽다 보면 번역이 되게 깔끔합니다.

번역서 중 너무 어색한 번역 탓에 오히려 집중이 안 되는 경우도 많은데 이 책은 그렇지 않습니다.

 

 

정리하자면 이 책은 파이썬의 전문적인 내용을 알아가고자 하는 파이썬 개발자들에게 추천하는 서적입니다.

또한 AI 엔지니어, 머신러닝 엔지니어들에게도 파이써닉한 AI를 만들 수 있도록 윤활유를 제공하는 책이라고 할 수 있겠네요.

 

감사합니다.

 


- 간토끼(DataLabbit)

- University of Seoul

- Economics & Data Science

 

728x90

+ Recent posts