[리뷰] 프로그래머를 위한 파이썬



제이펍 출판사의 "프로그래머를 위한 파이썬(데인 힐라드 저/황반석 역)"를 읽고 작성한 리뷰입니다.

표지


Python의 아래와 같은 개념을 어느정도 알고 계시는지?

  • 설계
  • 관심사 분리, 추상화, 캡슐화
  • 성능
  • 테스트
  • 확장성, 상속, 느슨한 결합
  • 개념은 알고 있지만 믹신, 목업 등 Python에 특화된 용어 혹은 스타일
    제너레이터
    메시지

만약 위 개념들이 생소하거나, 들어는 봤지만 익숙치 않다면 이 책이 많은 도움이 될 것이다. 더불어 키워드를 통해 본 도서의 난이도에 대한 감도 어느정도 잡을 수 있을 것이다.

키워드에 해당하는 내용들을 아주 상세하게 깊숙히 다루는 것은 아니다. 약 250p 정도 되는 다소 가벼운 분량에 키워드별 핵심이 되는 중요한 개념 혹은 코드 몇가지를 개괄적으로 소개한다.

분량이 짧다고 해서 깊이가 결코 가벼운 것은 아니다. 저자의 오랜 실전 경험을 바탕으로 학습 시간 투자 대비 가장 효과적으로 지식을 얻을 수 있도록 구성되어 있다는 인상을 받았다. 즉, 실전에 활용할 수 있는 가성비 좋은 내용들을 한 눈에 조망할 수 있게 구성된 점이 큰 장점이다.

실전에 많은 시간이 투입되었으나 전체적인 프로젝트 숲이 보이지 않는 개발자에게는 이 책이 단시간 내 막혔던 부분을 뚫을 수 있게 도와줄 것이다. 또, 반대로 프로젝트 경험이 많고 이미 위 키워드를 능숙할 정도로 알고 있는 이에게는 깊이 측면에서 약간 부족할 수도 있다.

개인적으로 생각하는 이 책의 최고의 백미는 파트3에 해당하는 실전 프로젝트이다. 위에서 열거한 개념들을 어떻게 실전에 적용할지 한가지 일관된 좋은 예제를 개발한다. 바로 브라우저 즐겨찾기 내용을 등록, 관리할 수 있는 커맨드라인용 북마킹 애플리케이션 Bark이다. Bark깃허브

Bark 설계, 구현 단계를 오롯이 따라하는 것만으로도 프로젝트 한 사이클을 경험할 수 있으므로 충분히 가치가 있는 과정인데, 그보다 더 큰 장점은 이 프로젝트를 구현, 개선해 나가며 위에서 배운 관심사 분리, 추상화, 캡슐화, 인터페이스, 커맨드 패턴, 느슨한 결합 등을 적용하도록 구성되어 있다는 점이다. 순환복잡도

일반적으로 설계에 대한 책은 각 관점별로 동떨어진 예제들이 열거되어 있어 실전에 돌입하면 메타지식 간 연결고리가 부실하여 바로 적용하기 어렵기 마련인데 저자는 그런 다른 책들의 비효율적인 부분들을 잘 이해하고 있다는 생각이 들었다. 독자들에게 자신과 같은 시행착오를 거치지 않도록 노력하고 있어 인상적이었다.

그 외 다른 파트의 내용은 다음과 같다.

  • 파트1 : 설계와 소프트웨어의 개요를 다루고 있어 가볍게 읽을 수 있다.
  • 파트2 : 맨 앞에서 소개한 주요 키워드들에 대한 개념의 핵심이 사례별로 잘 소개되고 있다.
  • 파트3 : 바로 위에서 언급했던 파트2 개념의 실전 적용 과정이다.
  • 파트4 : 개발자의 경력을 키우기 위한 조언 및 이후 학습 방향에 대한 조언이 담겨있다.

Python의 입문 과정을 마치고 중급 과정 혹은 실전에 돌입하는 이에게는 이 책이 매우 적합하다고 생각한다. 위에서 소개한 바와 같이 설계의 큰 그림을 정말 빠른 시간내에 익힐 수 있기 때문이다.

정리하자면 관심사 분리, 추상화, 캡슐화, 확장성, 상속, 느슨한 결합 등 뛰어난 설계를 위한 기본 개념부터 성능, 테스트, MVC패턴 등의 실전에 필요한 지식까지 즐겨찾기 관리 프로그램을 만들며 각각의 개념을 상호간에 유기적으로 연결해가며 익힐 수 있기에 효용성 측면에서 매우 높은 점수를 주고 싶은 책이다.







© 2019.04. by theorydb

Powered by theorydb