관심있는 것들 정리
[리뷰] Head First Python 개정판 본문
리뷰에 앞서 본 리뷰는 한빛 출판 네트워크에서 진행한 ‘나는 리뷰어다’ 이벤트에서 제공받은 책으로 진행한 것을 밝힙니다.
컴퓨터 언어를 배울 때 늘 신경쓰이는 것은 이 책이 나에게 맞느냐 인 것인데, Head First 시리즈의 책들은 그런 측면에서 늘 호불호가 갈릴 수 있다는 생각이 든다. 금번에 개정판이 번역된 Head First Python 역시 그런 측면이 있다고 생각한다.
기억하기로 97년즈음 부터 Oreilly에서 출판된 책들을 많이 접해왔다. Linux에 대해서 많은 정보를 얻기에는 어쩌면 어쩔 수 없는 선택이었을 수도 있다. 또 그 외 출판사의 책들도 컴퓨터 언어관련 책들이 다루는 포맷은 늘 유사했다.
* 주제
- 개념? 사용법은?
간단한 예제
- 주의점?
* 프로젝트 또는 좀 더 상세한 주제
...
이러한 접근법이 잘못된 것이 아니지만, 늘 command line 출력 결과를 가지고 설명이 되는 예제는 아쉬운 부분이었고, 그와 관련해 약간의 그림이 추가된 책에 대해서는 별것 아닌 것에 대해서도 '조금은 신경을 썼네' 라는 생각이 들었었다.
Head First 시리즈는 위와는 좀 다른 접근법... 마치 빨간펜 선생님이 그림을 곁들여가며 설명하는 듯한 느낌을 받는다. 입문자에게는 아주 좋은 선생님일 수 있으며, 깊이 언어를 알지 못하는 프로그래머에게 있어서도 좀 더 개념을 명확히 해 줄 수 있다는 생각이 든다.
하지만 계속해서 글과 그림이 주어진 포맷에 따라 빽빽히 책장을 채우고 있어서 책을 1/3 정도 읽어나가다 보면, 핵심은 잘 알겠고 그러면 어떤 부분을 좀 더 봐야하지? 라고 생각하는 순간 눈에 잘 들어오지 않는 부분도 있을 수 있다는 생각이 든다.
Head First 시리즈에 대한 개인적인 느낌은 그렇고... 이제 이 Python 책에 대해서 간단히 이야기를 해 보겠다.
이 책은 컴퓨터 언어를 처음 배우는 초보자에게는 맞지 않는다. 이 책을 끝까지 꼼꼼히 읽으면서 들었던 생각은,
초반부에는 이거 너무 친절해서 컴퓨터를 전혀 모르는 사람도 읽을 수 있겠는데? 그림까지 이렇게 친절하게 설명하고 있으니 정말 그렇겠네...
중반부에 들어가면서 데이터를 어디에 저장하고, 어떻게 함수를 수정하는 것이 더 효율적일까, 코드를 어떻게 소위말하는 행사코드를 줄이고 간결하게 맞게 짤 수 있을까 하고 올바른 코딩 방법에 대해 고민하는 내용들도 곁들여진다. 물론 이런 부분들 역시 처음 배울 때 알고 있어야 하는 부분이지만 과연 왜? 라는 부분에서 제대로 이해할 수 있을까?
후반부에 들어가면서 예외처리, thread 이런 부분은 소위 말하는 노가다 경험이 없이는 피부에 와 닿지 않겠다
라는 생각이 들었다.
먼저부터 단점부터 이야기한 것 같지만, 프로그래밍 경험이 있는 하지만 Python에 대해 잘 모르는 초보자에게 괜찮은 책이라고 이야기할 수 있을 것 같다. 약 230 페이지에 걸쳐 설명하는 기본 자료구조 설명을 보면, 무작정 접근할 때 실수하기 쉬운 내용들에 대해서도 여러가지 그림들과 눈에 띄는 텍스트로 친절하게 설명이 잘 되어 있다. 그리고 문자열에 기술된 모음을 찾아주는 예제를 command line -> flask web framework 사용 간단 예제 -> DB API 연동을 통한 좀 더 체계적인 프로젝트로 완성해나가는 방식을 단계적으로 설명하고 이 때 필요한 추가적인 문법 및 모듈(함수)들을 소개하고 있어, 꼼꼼하게 따라하면서 이해해 나간다면, 이 책을 다 읽고 나면 Python을 이런식으로 이렇게 이용하면 되겠구나 하는 간단한 감을 잡을 수 있다. 물론 이러한 접근법을 싫어하는 분들도 있을 수 있지만, 초보자 입장에서는 이러한 방식이 충분히 괜찮은 접근법이라는 생각이 든다.
그리고 늘 회자되는 Python2와 Python3 무엇으로 공부해야하나요? 라는 질문에 대해, 고민할 필요없이 바로 Python3로 배울 수 있도록, Python 3를 기준으로 책이 기술되어 있다. 이 책을 읽고나서 본인에게 더 필요한 것들에 대해서는, 이미 시중에 나온 많은 서적들, 온라인 문서들 또 실제 open source로 구현하고 있는 많은 project들을 참고하면 될 것이라 생각된다.
참고로 이 책을 리뷰하는 시점에
Windows 버전 최신 Python 버전인 3.6.4 설치 후 pip 로 flask 설치 시 MarkupSafe 설치 중 에러가 발생하는 것을 확인하였다. 이 부분은 시간이 지나면 자연스레 해결될 것이라 생각된다.
위 문제로 이 책의 예제를 시험해보기 위해, Linux 를 Virtualbox VM으로 설치해 다시 시도해 보았고 이 경우는 문제가 없이 설치되었다.