|
내용 : 3/5점 구성 : 4/5점
제이펍(http://www.jpub.kr/) 에서 번역 출간한 파이썬 기초 책이다. 평소 관심이 있었던 인터프리터 언어 중 가장 유명해서, 가장 많이 들어본 언어이기도 하다. 최근 갑자기 필이 꽂혀 파이썬을 배워보자는 생각에 가장 최근에 출간한 이 책을 무작정 선택하였다.
나는 C언어를 아주 예전에 한번 해본적은 있으나, 상용언어로 무언가 본격적인 작업을 해본적은 없다. 때문에 이후 나온 C++등의 객체지향 개념이나 그것으로 인해 파생된 클래스(이 책에서는 데이터형을 새로 만든다고 표현했다)와 상속등의 개념은 생소했다.
이 책은 완전한 초보자를 독자 대상으로 선정하고 쓴 책이다. 일본인이 쓴 책 답게 어투가 그리 친절하진 않지만, 상세한 설명과 필자의 꼼꼼함이 돋보인다. 그러나 그에 반해 실망스러운 부분도 적지 않았다. 아래에 이 책을 읽으면서 느꼈던 것 중 일부를 간략하게나마 써두었다.
[장점] 1. 파이썬을 비롯한 프로그래밍의 기초적인 개념부터 천천히 접근하고 있다. 프로그래밍에 대한 정확한 개념을 몰라도 접근하는데 큰 어려움은 없도록 설명이 잘 되어있다. 2. 많은 사람들이 선호하는 [파일 작성] -> [실행] 부분을 임의로 배제하고 쉘 상태에서 명령어를 하나 하나씩 입력해보도록 하는 예제로 구성되어 있다. 이 부분은 분명 비효율적임에는 틀림없으나 쉘 사용에 보다 익숙해질 수 있다는 점에서 리눅스 계열 등의 다른 쉘 명령어와 만났을때도 쉽게 친해질 수 있고, 입력을 잘못하면 다시 처음부터 써야 하기 때문에 반복 숙달의 효과도 있다. 초보자인 내가 생각하기에도, 처음은 반복적인 노력이 최고다! 때문에 '쉽고, 간편한' 방법을 추구하는 다른 책에 비해 점수를 주고 싶다. 3. 파이썬의 핵심적인 부분들을 설명하기 위해 충실하고 있다. 파이썬에는 타 언어에서 사용하는 배열이라는 개념이 아닌, 리스트, 딕트, 듀플, 셋 같은 좀 더 구체적이고 제한적인 개념을 제공하고 있다.(배열과 유사하지만, 분명 배열은 아니다) 타 언어에서 파이썬으로 넘어오는 독자층이라면 보다 쉽게 이해할 수 있다. 다만, 파이썬을 시작 언어로 잡은 대상이라면 C/C++/Java등 타 언어로 넘어갈 때 혼란이 발생될 수 있을법한 부분이기도 하다.(특히 중괄호'{}'를 사용하지 않는다는 점에서는 호불호가 갈릴 듯 싶다. 나는 중괄호를 사용하는 언어를 먼저 배웠기 때문에, 중괄호를 사용하는 것이 소스를 더 직관적으로 이해할 수 있으나 파이썬은 오로직 들여쓰기(Tab)로서만 구분을 둔다.
[단점] 1. 책을 중간에 쓰다만 느낌이 강하다. 가격에 비해서 얇은 구성도 한몫하지만, 본문의 절반을 기본 개념을 이해하는데 할당하고 나머지 절반 중 또 절반은 쓸데없는 turtle 사용방법으로 허비하고 있다. 실제 파이썬 언어를 사용하는 사람들 중에 turtle 모듈을 사용하는 사람이 몇명이나 될까? turtle 모듈 지문으로 데이터형, 상속, 모듈화 등을 설명하고는 있으나 이는 다른 것으로도 얼마든지 충분히 대체할 수 있는 부분이었다.(단지 turtle이 시각적인 GUI이기 때문이라고 한다면 실망스럽기 그지 없는 선택이다) 이 책을 다 읽고나서 든 생각은 "그래서 대체 파이썬으로는 어떤걸 할 수 있는 거지?" 였다. 거의 모든 개념에 대해 겉핥기 식으로 설명하고 넘어간지라 이걸로 어떻게 심화 응용을 해야 할지 감이 잡히지 않았다.(특히 파일 w/r 부분은 정말 쓰레기같다. 설명이 빈약해도 너무 빈약하기 그지 없다) 끝부분에 나온 '자동 청소로봇' 구조는 수학적 지식이 많이 들어가는 소스였는데, 때문인지 소스가 갑자기 방대해지고 어려워졌다. 책을 읽는 독자층을 고려하고 있다고 보기엔 무리가 있는 내용이었기에, 저자가 책의 분량을 끝내기 위해 중간에 집필을 그만두고 급하게 마무리 지으려는 것 같다는 기색을 떨칠 수 없었다. 2. 파이썬 2.x.x 버전과 3.x.x 버전의 차이에 대해 뒤에 있는 부록에서 써놓겠다면서 정작 써놓은게 없다. 그냥 "3.x.x 버전은 대규모 업데이트를 해서 많이 바뀌었습니다. 그래서 2.x.x 기반으로 만들어진 소스가 동작안할수도 있습니다. 그래서 나도 3.x.x 버전과 최대한 호환되는 내용들로만 구성했습니다." 라고 적은게 다다. 이럴거면 굳이 2.x.x 기반으로 책을 쓸 필요가 있었는지? 하는 의문심이 든다. 하다못해 "2.x.x 소스를 써야 할 일이 생길 지 모르기때문에, 우선 2.x.x 기반으로 배우고 뒤에 3.x.x 버전을 배우면 소스의 버전이 틀려도 얼마든지 수정할 수 있지 않겠습니까?" 하는 말이 더 설득력이 있어 보인다.(물론 이 말이 설득력을 가지려면, 책의 내용은 3.x.x 의 일부분도 포함하고 있어야 한다.) 3. 최종 예제가 없다. 물론 본문 마지막 부분에 turtle을 이용한 청소로봇 만드는 지문이 있기는 하다만, turtle이 애초부터 별로 필요가 없었던 지문임을 감안하면 앞서 배웠던 파이썬의 기능들로 무언가 결과물을 만들어볼 수 있는게 없다. 중간에 나오는 주사위 게임이 유일한 결과물이라면 결과물이랄까.
최종소감 가격에 비해 내용이 터무니없다. 다른 파이썬 기초책을 읽어보지 못해서 이 책과의 차이점은 잘 모르겠지만, 정말 중간에 끝나버린다. 주요 API 중에서도 몇몇개만 보인다. 나머지는 전부 "레퍼런스를 정독하시오"다. 물론 이게 정답이기는 하지만, 초보자가 레퍼런스 API를 본다고 이게 뭔지 알기나 할까. 그걸 보고 알 수준이면 책을 사지도 않았다. 차라리 turtle을 빼고 몇몇 유명한 GUI라이브러리를 기반으로 한 GUI 개발로 나가는게 더 낫지 않았나 싶기도 하고...(외부 라이브러리가 저작권 문제로 불가능하다면 내장 GUI 라이브러리도 있지 않은가! 게다가 turtle마저도 극히 일부분만 설명하고 끝이 나버린다. 어쩌란 말인지...)
이도저도 아닌 상태에서 책이 끝나고, 부록은 부록대로 쓸데없는 말만 적혀있다. 그럼에도 기초 개념을 잡는데는 정말 많은 도움이 되었다. C++책을 읽을때나, Java책을 읽을때 이해가 되지 않던 메소드 등의 개념을 이 책을 보고 이해하는데 많은 도움을 받았으니 결코 책을 읽은 시간이 헛되지는 않았던 셈.
어떤 책이든(설사 내용이 부실하더라도) 그 책을 읽음으로써 얻는것이 반드시 있다는 지론이기 때문에 책을 구매하는데 최대한 돈을 아끼지는 않는 입장이긴 하지만, 기초만 가르쳐놓고 이제 막 흥미를 붙여볼까 하던 참에 책이 끝나버리는 점은 프로그래밍에 흥미를 막 가지기 시작한 독자들을 힘빠지게 만드는 악요소라고 생각한다. 때문에 이 책의 저자는 책 구성을 심각하게 다시 고민해볼 필요가 있을 듯 싶다.
(여담이지만, 이 책의 시리즈인 "더 쉽게, 더 깊게" 의 4권 중 3권(파이썬, 네트워크, C++)을 구매했다. 세 권중 처음 읽은 책이 이 책인데, 다른 책들도 모두 페이지 수가 비슷한 상황이라 그 책들을 읽는데 걱정이 슬며시 든다.)
*요약 : 기초 개념을 잡는 용도로만 읽는다면 나쁘진 않다. 좀 더 나아가서 무언가 결과물을 내보고 싶다면 이 책 이외에 다른 책이 필요하다.
아래는 파이썬 기초에 관해 참고하실만한 좋은 사이트의 링크이다.
박응용 님이 2001년 출간한 책인 '점프 투 파이썬'(현재 Ebook으로 병행 판매하고있으나 웹페이지에서는 무료로 볼 수 있다)을 온라인에서 무료로 보실 수 있는 사이트인데, 본 책의 내용 중 turtle 부분을 제외하고는 대체적으로 비슷한 내용을 안내하고 있다.(XML에 대한 짧은 설명은 본책에는 없다) 저자이신 박응용 님의 지속적인 업데이트 덕분에 현재의 파이썬과 별 다른 차이점은 없다. 출간 연도를 감안하면 국내 파이썬 입문서적의 바이블 수준이라고 볼 수도 있을 것 같다.
이 책(파이썬 더 쉽게, 더 깊게)을 구매하셨다면, 다 읽어보신 다음 '점프 투 파이썬'도 꼭 읽어보시길 바란다. 소소한 부분이지만 저자 두 분의 설명이 약간씩 다른 부분들이 시너지 효과를 발휘하여 보다 명확히 개념을 이해할 수 있는데 큰 도움을 얻을 수 있다. |
|
파이썬을 처음 접하는 사람들에게 적합한 난이도로 구성이 되어 있다. 그림을 이용하여 파이썬에서의 데이터 타입 개념에 대해서 설명을 해주는 것은 이 책의 특징이라 할 수 있을 것 같다. 중반부에서 제어문에 어느 정도 비중을 두어 내용 구성이 되어 있어 파이썬의 다른 부분들에 대해서는 더 깊이 알기엔 조금 부족하다는 느낌이다. 하지만 이 책으로 공부를 한다는 것은 기초적인 제어문과 파이썬의 데이터 타입이란 부분을 공부하는 것이기에 빠르게 이 책을 읽은 후 파이썬에 대한 흥미와 궁금증을 높인 상태에서 난이도가 있는 다른 서적을 선택하여 학습을 하면 좋을 것 같다. |