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

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

Head First Python, 개정판

스스로 질문하며 답을 찾는 파이썬 학습서(Python 3)

한빛미디어

번역서

절판

  • 저자 : 폴 배리
  • 번역 : 우정은
  • 출간 : 2017-12-04
  • 페이지 : 624 쪽
  • ISBN : 9791162240281
  • 물류코드 :10028
  • 초급 초중급 중급 중고급 고급
4.3점 (12명)
좋아요 : 29

최신 인지과학이론을 바탕으로 반복학습/재미요소를 모두 갖춘 파이썬 학습서

 

이 책은 『Head First』 시리즈 학습 원리에 기초하여 모든 페이지가 그림과 대화체를 바탕으로 구성되어 있습니다. 딱딱한 강의식 말투보다는 개인적으로 대화를 나누듯 재미있는 설명으로 파이썬을 다룹니다. 또한 80개가 넘는 실습을 직접 해보면서 더 잘 배우고 기억하도록 만들어졌습니다. 『Head First Python, 개정판』은 여러분의 두뇌를 끊임없이 자극합니다. 이 책을 덮을 때쯤이면 자신도 모르는 사이에 파이썬이 학습되어 있을 것입니다!

 

 

상세이미지_헤드퍼스트 파이썬_최종_733_1.jpg

 

폴 배리 저자

폴 배리

최근에 자신이 4반세기 동안 프로그래밍을 해왔다는 것을 깨달았습니다. 그 동안 폴은 매우 많은 프로그래밍 언어로 프로그램을 만들어 왔고, 두 대륙에 있는 두 나라에서 일하면서, 결혼도 하고, 세 명의 자녀도 두고 컴퓨터 분야에서 학사와 석사 학위를 받았고, 리눅스 저널에 무수히 많은 기사를 써왔습니다. 또한 『Head First HTML with CSS & XHTML: 웹2.0 시대의 웹 표준 학습법』, 『Head First Python』을 집필했습니다.

우정은 역자

우정은

인하대학교 컴퓨터공학과를 졸업하고 LG전자, 썬 마이크로시스템즈, 오라클 등에서 모바일 제품 관련 개발을 했다. 뉴질랜드 웰링턴에 있는 Xero에서 모바일 앱을 개발하다가 현재는 DevOps 팀에서 새로운 인생을 즐기고 있다. 2010년 아이폰의 매력에 빠져들면서 번역과 개발을 취미로 삼고 꾸준히 서적을 번역한다. 옮긴 책으로는 『플러터 인 액션』, 『처음 배우는 스위프트』, 『실전 자바 소프트웨어 개발』, 『모던 자바 인 액션』, 『실무자를 위한 그래프 데이터 활용법』(이상 한빛미디어) 등이 있다.

 

1장 기초: 바로 시작하기 

2장 리스트 데이터: 순서가 있는 데이터로 작업하기 

3장 구조화된 데이터: 구조화된 데이터로 작업하기 

4장 코드 재사용: 함수와 모듈 

5장 웹앱 만들기: 실생활로 다가가기 

6장 데이터 저장과 취급: 데이터를 어디에 저장할 것인가 

7장 데이터베이스 사용하기: 파이썬의 DB-API 사용하기

8장 클래스 맛보기: 동작과 상태 추상화 

9장 컨텍스트 관리 프로토콜: 파이썬의 with 문과 연결하기 

10장 함수 장식자: 함수 장식하기 

11장 예외 처리: 뭔가 잘못되면 어떻게 해야 할까? 

11¾장 스레드 맛보기: 기다림에 대처하는 방법 

12장 고급 반복: 미친 듯이 돌아요 

 

부록 A 설치: 파이썬 설치하기 

부록 B 파이썬애니웨어: 웹앱 배포하기 

부록 C 우리가 다루지 않은 열 가지 인기 항목: 배움에는 끝이 없어요 

부록 D 우리가 다루지 않은 열 가지 인기 프로젝트: 그 밖의 다양한 도구, 라이브러리, 모듈 

부록 E 참여하기: 파이썬 커뮤니티

 지금 배워서 바로 사용할 수 있도록 설계된 파이썬 도서

 

✔ 독자 여러분이 다른 프로그래밍 언어 경험이 있다고 가정합니다. 따라서 긴 기술문서 목록이나 복잡한 내용은 과감히 삭제했습니다.   

✔ 1장부터 바로 파이썬을 이용해 무언가를 만들 수 있도록 바로 본론부터 시작합니다. 

✔ 최신 인지과학 이론에 근거해 의도적인 반복학습으로 설계되었습니다. 

✔ 가능한 한 짧은 코드만 제시했으므로 필요한 부분을 쉽게 찾아서 배울 수 있습니다.  

 

 

누구를 위한 책일까요?

다음 질문에 모두 ‘예’라고 대답하면, 이 책은 바로 여러분을 위한 책입니다.

① 다른 프로그래밍 언어로 프로그램을 구현할 수 있나요?

② 파이썬 프로그래밍을 배워서 새로운 작업에 이용할 수 있도록 여러분 도구 목록에 추가하고 싶은가요?

③ 지루한 강의를 몇 시간씩 듣는 것보다는 직접 뭔가를 해보고 적용하는 것을 좋아하나요?

 

어떤 독자들에게 이 책이 맞지 않을까요?

다음 질문 중 하나에라도 ‘예’라고 대답하면, 이런 독자에게는 이 책이 맞지 않습니다.

① 파이썬 프로그래밍을 하는 데 필요한 대부분의 지식을 이미 알고 있나요?

② 파이썬의 아주 세세한 부분까지 전부 설명하는 파이썬 참고서를 찾고 있나요?

③ 뭔가를 새로 배우느니 차라리 발톱을 뽑히는 게 낫나요? 파이썬 책은 모든 내용을 다뤄야 하며 독자가 하품을 할 만큼 지루해야 좋은 책이라 생각하나요?

최근 몇년간 EXCEL VBA에 빠져있다 우연히 들은 Python...

C, PHP에 관심을 가지고 책들을 보며 필요한 프로그램을 만들며 나만의 만족을 하던 중학생 시절을 떠올리며 올 한해 프로그래밍 언어 하나를 다시 제대로 배워보고 싶다고 생각한 37의 나이...

 

다시금 프로그래밍 언어에 손을 대기 시작했다.

 

설렘 반, 두려움 반...

 

사범대를 졸업하고 교편을 잡고 있는 내게 이 책은 제목부터 호기심 덩어리였다.

Head First ...

머리가 우선이다?

사람의 인지구조를 분석하여 프로그래밍을 쉽게 접근할 수 있게 한 책이란 말인가?

아니면 프로그래밍의 원리에 입각하여 사람의 인지구조를 바꾸는 책이란 말인가?

 

어찌보면 둘다 비슷한 것 같지만 어떠한 인지의 틀을 다른 틀에 맞추는 작업이다.

 

과거의 교육 철학과 논리라면 실용성을 우선시하여 후자가 적합하다고 하겠지만, 사람들의 다양성을 인정하고 그에 따른 다양한 사고를 가능하게 하는 선자의 책이었으면 좋겠다라는 생각을 하고 이 책을 선택하였다.

 

이 책의 목차는 다음과 같이 구성되어있다.

 









 

이러한 목차 중 왜 제목이 Head First 로 시작하는 서문에 중점을 두고 싶다.

 

이 책의 서문의 부기명은 "이 책 활용 방법"이다.

 

사람의 뇌가 어떠한 지식을 받아들이는 방법을 설명하고 이러한 지식을 받아들이는 방법을 최대로 활용하여 지식을 재구조화하는 매타인지를 활성화 시키는 방법을 나열하고 있다. 이는 중학교에서 제가 아이들에게 사용하는 방법과 동일한 방법으로 정말 신기했다. 나는 학생들에게 이런 인지구조를 활성화 시키기 위한 전략을 사용하고 있었지만, 내가 정작 새로운 학문의 분야를 접할 때에는 전통적인 방법으로 학문을 받아들이고 있었구나라고 하는 반성을 하게 되었다.

 

위의 그림에서와 같이 사람의 인지구조에 따라 이 책의 구성이 구성되어있고 이를 학습하기 위한 방법이 제시되어있었다. 그리고 이 책을 접하기 위해서는 다른 프로그래밍 언어를 접해본 사람이 이 책을 읽어야 함이 제시되어있다. 이 말은 프로그래밍에서 사용되고 있는 정적 및 동적 변수 등과 같은 특정 용어에 관한 설명이 없다는 것 입니다. 용어에 관한 설명은 구글이나 네이버를 검색해보는 것이 좋을 것 같습니다.

 

그런데 제1장이 파이썬에 관한 설치가 아니라 바로 시작하기입니다.

 

파이썬 설치는 부록 A를 확인하시기 바랍니다. 하지만 책에 없는 Tcl/Tk 오류가 나오면

http://blog.movenext.co.kr/105

URL을 확인하여 경고 문구가 나오지 않도록 하시면 좋습니다. 위 경고 문구에 대한 해결책은 이 책에 나오지 않습니다.

 

이 책은 프로그래밍의 일반적인 접근인 특정 텍스트의 출력 문구 가장 일반적인 'Hello, World!'가 아닌 특정 프로젝트를 조금씩 확장해 나가는 방식을 취하고 있습니다.

 

Array를 제시하고, 조건문을 제시하며, 내장함수를 어떻게 활용하는지부터 제시하는 방식은 다른 언어를 접해보지 않은 사람들에게는 익숙하지 않은 방식일 수 있습니다. 하지만, 라이브러리를 조금씩 맛보기로 제시하는 방식은 프로그래밍 언어를 조금이나마 접해본 사람들에게 있어 호기심을 자극하고 때로는 답답함을 줄 수 있습니다. 저는 호기심을 자극해서 라이브러리 PDF를 다운로드하여 보고 있습니다.

 

제 1장에 대한 설명을 계속 하고 있는 이유는 제 1장의 내용 구성이 나머지의 내용 구성과 동일하게 진행되기 때문입니다. 이 책은 다시 한번 더 제시하지만, 프로그래밍 언어를 접해본 사람들을 위한 책으로, 그러한 사람들에게 질문을 던져 호기심을 제시하고 이를 하나 하나 해결해 나가도록 하는 방식을 취하고 있습니다.

 

이러한 호기심은 단원의 마지막에 퀴즈를 통해 다시한번 재 확인을 하고 정리하는 방식을 취하고 있습니다.

 

중학생 시절 아버지의 용돈을 받기 위해 C언어를 배우던 시절...

고등학생이 되어 홈페이지 구축을 위해 PHP를 공부하던 시절...

 

이제는 성인이 되어 일상 업무의 효율성을 위해 다시금 프로그램 언어를 공부하고 있는 Python...

 

 

 

여러분도 이 책을 통해 생활 속의 문제를 해결해보는 것은 어떨까요?

이번에 소개할 작품은 기존에 많은 인기를 끌었던 폴 배리의 의 개정판입니다. 'Head First' 시리즈는 O'REILLY의 대표적인 IT 시리즈물 중에 하나로 기존에 경험하지 못했다면 색다른 경험을 제공하는 IT 서적입니다. 

 

필자는 , , 등 다양한 작품을 읽었으며, 'Head First' 시리즈를 사랑하는 독자였습니다. 'Head First' 시리즈의 유명한 작품인 을 통해 2018년 처음으로 인사를 드릴 기회를 준 한빛미디어 관계자님께 깊은 감사의 말씀을 전합니다.

 

이 책에서 다루는 내용은?

Python은 다양한 분야에서 활용할 수 있는 매력적인 언어이며, 최근에는 기계 학습과 딥 러닝 분야에서 두각을 보이고 있습니다. 다른 언어와 비교했을 때, 빠르게 학습할 수 있는 점도 매력적인 요인입니다.  

 

개정판은 Python 3을 기준으로 작성되어 있으며 Python 3에 대한 모든 것을 소개하지는 못하지만, 책의 안내에 따라 즐기면서 한 단계씩 나아가면 자연스럽게 Python 3의 기본 요소를 체득하고 있는 자신을 발견할 수 있을 것입니다.

 

다양한 코드와 다소 어려운 주제도 이해하기 쉬운 그림으로 설명하여 독자가 해당 요소에 대해 쉽게 학습할 수 있습니다. 또한, 여러 궁금한 사항들을 미리 잘 정리해 놓은 점도 매력적인 부분이라 할 수 있습니다.

 

은 Python을 처음 접하는 독자들에게 큰 즐거움을 선사할 수 있는 책으로 생각합니다.

 

마치면서...

필자는 서문을 꼭 읽는 편인데, 'Head First' 시리즈를 처음 접하는 분이라면 반드시 읽으시는 것이 좋습니다. 만약 시스템에 Python 3이 설치되어 있지 않으면, 부록 A를 참조하여 설치한 후 진행하는 것을 추천합니다. 다양한 운영체제에서 설치할 수 있도록 설명하고 있으므로 어렵지 않게 설치할 수 있을 것입니다.

 

'Head First' 시리즈는 연필과 함께 책에서 제안하는 문제를 스스로 풀이하면서 나아가는 것이 좋습니다. 충분한 시간을 투자하면 풀이할 수 있는 문제이므로 끝까지 풀이하는 것을 추천합니다. 문제도 재미있는 퀴즈 형식으로 구성되어 있으므로 즐겁게 풀이하며, 학습한 내용을 자연스럽게 정리할 수 있습니다.

책을 읽기 시작하며

이번에 리뷰하고자 하는 책은 그 유명한…
Head First 시리즈 중 파이썬을 다루는, Head First Python(개정판) 이다.
책 표지에 개정판/파이썬3 라고 적혀있는 것으로 보아, 2011년도에 초판 발행되었던 책은 파이썬2를 기준으로 서술하고 있을 것으로 보인다.(구판을 읽어보지 않아서 모르겠다…)
다만… 파이썬3가 본 책의 구판(2011년 초판발행)보다 일찍 나온 것으로 기억되는데 그럼에도 파이썬2를 서술했던 것은 아마 파이썬3가 2와의 호환성 문제로 인해 정착되는데 오랜 시간이 걸렸기 때문일 것으로 생각된다.
구판이 496쪽으로 구성된데 비해, 개정판은 624쪽으로 100쪽 이상의 페이지가 추가되었다. 다만 책에서 구판과 비교해 개정된 내용이 무엇인지 비교해주는 부분이 없는 것은 다소 아쉽다. python2 에서 3로 넘어간 것만으로 내용이 추가된 것일까???

 

대상 독자

분명, 입문자들에게도 친절한 책이다. 별도의 부록을 통해 파이썬3를 다운로드 받을 수 있는 링크, 설치 방법까지 수록하고 있고, IDE에 대한 기본 용어 설명부터 시작한다. 충분히 입문자들도 소화할 수 있지만. 그러나, 나는 C나 JAVA가 뭔지도 모르고… 코딩의 코자도 들어보지 않았다… import가 뭔지도 모른다… 이런 독자들에게까지 적당한 책이라고 하기는 어렵다. 물론, 놓치지않고 책에서 지면을 할애해가며 설명하고 있지만 1도 모르는 독자들한테까지 밥을 지어서 떠먹여주고 소화까지 시켜줄 수 있는 책은 아니다. 코딩의 경험이 있고, C언어 정도에 대한 개념이 있으면 적당하겠다. 갓 대학생활을 시작하며 전산실무나, 전공으로 프로그래밍을 공부하고자 하는 학생들에게도 매우 많은 도움이 될 것이다.
(책에도 이렇게 쓰여있다. “이 책은 참고서가 아니에요. 그리고 여러분이 이미 프로그래밍 경험이 있다고 가정합니다.”)
그럼에도, 나는 코딩의 “코”자도 모르긴 코알못이지만, 요새 코딩이 유행이라고 하는데 한번 도전해보겠어 하는 강한 도전정신을 가지고 계시다면 못할게 무엇인가. 당신에겐 “Google”이라는 아주 든든한 조력자가 있다. 검색해서 안나오는건 없음~~~

책의 구성

책은 총 12개의 파트와 부록으로 나누어진다. 부록은 파이썬 다운로드 및 설치, 웹앱의 배포 등 파이썬을 배우면서 모두에게 중요하지는 않은, 파이썬이라는 핵심내용의 기초를 닦는데 있어서 당장은 알지 않아도 괜찮은 그런 부분들을 따로 뽑았다. 독자들의 서로 다른 수준을 충족시켜 줄 수 있는 좋은 구성이다.
12개의 파트는 아래와 같이 분류된다.
– 01. 기초
– 02. 리스트 데이터
– 03. 구조화된 데이터
– 04. 코드 재사용
– 05. 웹앱 만들기
– 06. 데이터 저장과 취급
– 07. 데이터베이스 사용하기
– 08. 클래스 맛보기
– 09. 컨텍스트 관리 프로토콜
– 10. 함수 장식하기
– 11. 예외처리 / 스레드 맛보기
– 12. 고급 반복

[파이썬 기초]
01.기초에서는 IDE를 다루는 방법부터 시작해서 기본 용어설명, 파이썬의 특징, 쉘 사용법 등에 대해서 설명한다. 처음으로 기본 코드를 작성해보고, 컴파일을 해보고 결과를 실행해본다. 내가 작성한 코드가 Error없이 컴파일되고 화면에 출력되는 첫 기쁨을 맛보게된다.ㅎㅎㅎㅎㅎ
그런데, Hello World!가 없다. 섭섭하다. 헬로월드는 모든 언어의 학습의 시작일터인데.
다른 언어의 입문책을 읽어봤던 독자라면 Hello World!가 무엇인지 알고 있으리라
02.리스트 데이터 부터가 본격적인 파이썬에 대한 학습이라 보면 무방하다. 변수에 대한 설명 및 사용, 객체(object), 파이썬이 기본적으로 제공하는 라이브러리 등에 대해 학습한다. 03.구조화된 데이터 에서는 key-value쌍으로 이루어지는 딕셔너리에 대해 공부할 수 있다. 04.코드 재사용은 개인적으로 매우 중요하게 생각하는 부분인데, 이 과정을 통해 흔히 말하는 객체지향 프로그래밍(OOP, Object Oriented Programing)에 대해 배우게 된다.

[파이썬 응용]
01~04까지는 파이썬에 대한 기본 지식을 닦게끔 하는 챕터다. 뛰기 위해서는 걸을 줄 알아야하고, 걷기 위해서는 기어다니는 과정과 시간도 필요하다. 아기가 태어나자마자 걸을 수는 없지않나. 01~04까지 파이썬의 기초를 닦았다면 이제부턴 날개를 단다. 그래서 이걸로 뭘 어떻게 해? 라는 생각을 가졌을 수도 있는데 이후 챕터부터 그런 의심을 시원하게 날려준다.
05에선 플라스크를 활용해서 기본적인 웹앱을 만들고, 배포하는 작업까지 해본다. 다만 기초, 맛보기 정도라는 사실을 미리 알아두자. 시중에 출판되어 있는 플라스크-파이썬으로 개발하는 별도의 책만해도 본 서(Head First Python 개정판) 두께 못지 않을테니까. 하지만 이제 막 파이썬을 공부하는 독자들 혹은 파이썬으로 코딩은 해봤지만 응용을 해보지 못한 독자들에게 아주 재미있고 쉽게 따라할 수 있는 수준으로의 예제가 실려있어서 아주 좋다. 이후 충분히 응용해보기에 좋은 수준이라고 사료된다. 이후 장들도 전부 파이썬을 바탕으로 고급 기술을 구사하고 응용하는데 필요한 내용들이라고 할 수 있다. 예외처리나, 스레드 활용은 고급 기술이지만, 고급이라고 하기엔 너무나도 당연하고 보편적으로 사용되고, 적용되야만 하는 기술이기 때문이다.

위에서 본서를 파이썬 기초, 파이썬 응용으로 나눈 것은 필자의 개인적인 분류에 불과하다. 그러나, 그 구분이 비교적 명확하게 드러나는 편이고, 그에 따라 쉽게 난이도를 조절할 수 있기 때문에 독자의 수준에 따라 학습의 정도를 결정할 수 있어서 아주 좋다고 말하고 싶다. 기초 부분을 읽으면서도 쉽게 이해가 되지 않는다면 다시 그 부분을 반복학습하고, 구글이나 본 서에서 안내하고 있는 파이썬 커뮤니티를 활용해서 기초를 확실하게 다지면 좋겠다. 그러면 응용파트에서도 크게 어려움을 느끼지 않을 것이다.

 

책의 장점

작은 글씨의 텍스트와 코드, 실행결과만 나열한 것이 아니라, 너무나 친절할 정도로 초심자 입장에서 충분히 가능할만한 ‘의식의 흐름’을 따른다. 다양한 화살표와 손글씨체를 이용해서 바로바로 주석 이상의 tip을 던져준다. 또한, 보다 코드나 핵심 개념을 쉽게 이해할 수 있는 도식들, 테스트, 핵심정리 등의 summary로 쉽게 이해할 수 있도록 구성되어 있다. 많은 입문서들에게서 책의 페이지 한쪽 혹은 양쪽을 예제 소스 코드로 도배해놓고, 다음 페이지에 주요 코드들에 대해 설명을 하는 경우를 찾아볼 수 있다. 친절하지도 않고, 그 코드가 와닿지도 않는다. 특히 코딩 입문자들에게는… 헤드퍼스트 파이썬은 과감하게 코드의 길이를 줄이고, 글씨를 키웠으며 거의 모든 라인에 대해 핵심 주석을 달아놓아 코드 한줄 혹은 함수의 기능 및 역할에 대해 쉽게 이해할 수 있도록 배려하였다. 초보자들에게 이보다 더 친절하기는 어렵다… 진짜다.

구술형으로 구성되어 있는 본문도 장점이다. 딱딱하지 않게, 학원 강사던 학교 교수님이던, 수업을 진행하듯이 풀어쓴 본문 내용과 거기에 질문을 던짐으로써 독자가 먼저 생각해보게끔 하는 구성은 조금 더 이 책에 집중할 수 있도록 도와준다. (수능 학습 교재 중에 누드교과서 라는 책이 있었는데… 그런 느낌이다. 아시는 분이 있으려나 모르겠다…)

더불어 저자는, 천재보다는 노력형이 아닐까 하는 생각을 해본다. 천재들은 바보들이 무엇을 어려워하는지, 혹은 왜 어려워하는지 모른다. 그냥 당연하니까. 하지만 노력형은 자신도 똑같이 특정 부분에서 어려워했고, 고민해보았기 때문에 초보자들이 어디서 어려워할지, 무엇을 모르는지, 왜 이해하기 힘들어하는지를 아는 경향이 있다.
저자가 노력형이 아닐까 라고 내 생각을 전달한 이유는 위와 같다… (참고로 필자는 바보다… 내가 왜 코딩을 시작했을까 하는 후회를 한두번 해본게 아님…)

 

마무리하며

개인적으로 Head First 시리즈는, 컴퓨터공학을 전공했거나 s/w 개발자로 근무하고 있거나 했던 사람이라면 사실 모르는 사람이 없을, 아주 유명한 시리즈이다. 집에 어떤 종류이든, 한권쯤은 있을만한 그런 책인 것이다.
다른 헤드 퍼스트와 마찬가지로, 이 책 역시 헤드 퍼스트만의 독창성을 가진다. 읽고 공부하는데 지루하지 않고, 내가 모르는 부분에 대해서는 신기하게도 주석이나 챕터의 후반부에서 코너를 만들어 다룬다. 마치 나에게 강의하는 듯한 느낌이다.
이 책은, 파이썬의 기초 학습서라고 할 수 있다. 파이썬으로 다양한 프로젝트를 경험해봤고 경험한 사람들에겐 분명 적당하지 않을 것이다. 그러나 C, JAVA의 경험이 있으면서 파이썬에도 도전해보고 싶은 사람이나 혹은 경험이 없어도 코딩에 대한 기초지식을 조금이라도 갖추고 있다면 분명 큰 어려움 없이 따라갈 수 있는 수준을 다룬다.(그럼에도 어려우면, 언제나 구글을 이용하자. 내가 모르는 질문은 100% 이전에 다른 누군가가 질문한 적이 있다. 본 서에서도 언급하지만, 바보같은 질문은 없다. 바보가 많은 것이라면 할말이 없지만..ㅎㅎ)

사람에 따라서 이 책을 다 읽는데 2~3일이 걸리는 사람도 있겠지만 1달~2달이 걸리는 살마도 존재할 것이다. 코딩 경험이 있으신 분들은 분명 금방 이 책을 뗄 수 있을것이라 생각한다. 이 책을 다 보았다고, 당신이 파이썬의 마스터, 대가가 될 수 있다고 말하지는 않겠다. 빅데이터, 딥러닝 등에 대한 관심이 있는 분들이라면 파이썬에 대한 얘기를 수 없이 많이 들었을 것이다. 이 책을 마스터했다고 당신이 바로 빅데이터와 딥러닝을 개발할 수 있다고 얘기하지도 않겠다.(그건 그냥 불가능)
그러나, 이 책을 보고나면 인공지능과 딥러닝을 공부하기 위한 제 1단계 준비를 마쳤다고는 할 수 있을 것이다. 다시 말하지만, 기지 않고 걸을 수는 없다. 그러다 어느 순간 걸음마를 떼게 되고, 뒤뚱뒤뚱 걷게된다. 수 없이 넘어지겠지만 어느 순간 달리고 있는 내 모습을 보게 될 것이다.

이 책은 훌륭한 가이드가 될 자격이 있다.

Head First Python.jpg

​마치 과외선생님이 옆에 앉아 가르치는 느낌입니다. 왜 이렇게 생각했는가 하면 읽어가는 도중에 옆길로 빠지지 않도록 붙들어 주는 장면이 곳곳에 있기 때문입니다. Head First 시리즈의 특징인, 코드, 설명, 그림, 말풍선, 연습문제가 딴 생각을 못하게 합니다.

조금 심하게 얘기하면 끊임없는 자극을 통하여 전달하고자 하는 내용을 머리속에 우겨넣는 느낌입니다.

예를 들면, 자료구조를 알려주고 리스트만으로 어떤 문제를 해결하라고 던져줍니다. 그러면 읽는 이가

'자료구조 가운데 집합을 이용하면 쉬울텐데 왜 굳이 리스트로?' 라는 의문을 가질 때쯤 한마디 던집니다.

'알고 있다. 집합을 사용하면 되지만, 여기서는 리스트를 좀더 깊이 이해하는데 초점을 두고 있다. 단순히 생각할 수 있는 것보다 더 유용하게 사용할 수 방법들이 있으니 머리를 굴려보라'고 주문합니다. 나름 답변을 생각하고 다음 페이지로 넘어가면

'오호~ 이런 식으로 사용할 수 있단 말이지!'라는 생각이 들게 합니다. 그러다보면 조금더, 조금더 진도를 나가고 있는 자신을 볼 수 있습니다.

Python 의 주요 특징 가운데 반드시 알아야 할 몇 가지에 집중하고 있습니다. 그렇지만 문법이 가지는 특징이나 예약어, 구문을 따로 정리해 놓지 않았습니다. 그때그때 필요한 만큼만 설명하고 있습니다. 그렇기에 사전처럼 어떤 기능이나 문법을 찾아보기에는 맞지 않습니다. 한가지 주제를 두고 풀어나가면서 필요한 기능이나 구현을 보여줍니다. 그리고, 조금씩 확장합니다.

Python 의 기능이나 사용법을 하나씩 알아간다기보다 Python 자체를 느끼면서 익숙해져 가는 방식이라 할 수 있습니다.

프로그래밍을 처음 접하는 사람에게는 내용이 다소 버거울 수 있을 듯 합니다. 어떤 언어든 프로그래밍 경험이 있으면서 Python 을 알고자 할 때 보시면 큰 도움이 될 것 같습니다.

1장에서 Python 을 실행하는 기초 내용을 얘기합니다.
2, 3장에서 내장된 자료구조를 설명하고 어떻게 사용하는지 알려줍니다.
4장에서 함수와 모듈을 설명합니다. 앞에서 얘기한 자료구조를 함수 활용에 엮어놓았습니다.
4장을 마칠 때 쯤이면 피로감과 함께 지친다는 느낌을 가질 수 있습니다. 다양한 자극이 학습에 도움되지만 그만큼 에너지를 많이 소모시키는가 봅니다.

5장에서 웹앱으로 실제 써먹을 수 있는 뭔가를 해보자고 부추깁니다. 그리곤 은근슬쩍 서드파티 모듈을 어떻게 사용하는지 넣어놓습니다.
6~11장까지 웹앱을 보완하면서 Python 을 사용하며 알아야 할 것들을 하나씩 꺼내보여 줍니다.
9장 컨텍스트 관리 프로그램: with 문과 연결하기에서 코드를 간결하게 하는 방법과
10장 함수 장식자로 유연하게 함수 기능을 확장하는 내용은 흥미진진합니다. 다만, 기본 기능에 충실하다보니 뭔가 설명이 부족한 느낌이 있습니다.
11과 3/4장 쓰레드 맛보기는 Python 에서 쓰레드 사용을 소개하고 있습니다. 이렇게 할 수도 있다고 알려주는 정도입니다.

12장 고급 반복은 컴프리헨션을 어떻게 구성하는지 알려줍니다. Python 의 컴프리헨션이 궁금하다면 12장만 읽어도 충분할만큼 잘 설명하고 있습니다. 더하여 제너레이터(생성자)도 설명하고 있습니다.

1장에서 12장 마칠때까지 먼저 나왔던 내용을 은연중에 계속 반복하고 변형합니다.


한번 읽고나면 느껴지는 Python 때문에 다시 읽고 싶어지는 책입니다.

파이썬은 상대적으로 다른 언어에 비해 학습하기가 쉽다고 알려져 있고, 여러 분야에서 많이 사용되는 추세인데다가, 데이터분석 분야에서 "R"과 함께 양대 산맥을 이루는 언어이기 때문에 이전부터 배워보려고 했었다.

 

하지만 역시 개발언어는 언어인지라 수 년 동안 초보자를 위한 여러 책들도 살펴보고, 온라인 강의도 들어봤지만 시도만 했을 뿐, 어느정도 알겠고 조금씩 헤매가며 원하는 것을 구현할 수는 있겠다는 수준까지 도달(?)하지는 못했던 것 같다.


 

“Head First Python” 개정판이 나왔다고 해서 이번에는 한번 끝을 보리라 하는 마음으로 큰맘먹고 다시한번 학구열을 불태워 보았다.


 

책은 다른 ‘Head First’ 시리즈와 마찬가지로 아주 많은 그림과 대화체, 그리고 여느 개발서(이론설명, 예제코드, 연습문제 등등의 순...) 같지 않은 구성으로 되어 있다. 차근차근 한자한자 책을 씹어가며 공부하는 스타일의 사람들에게는 익숙하지 않을 수 있을 것 같다. 나도 처음에는 시선이 어디로 흘러가야 할지 몰라서 당혹스럽고, 한편으로 소스코드 한줄한줄 직접 PC로 입력해가며 읽다보니 산만함은 극에 이르렀다. 2장 정도 읽으니 어느정도 적응이 되기 시작했고, 대화체 방식도 금새 적응이 되었다.

 

개인적으로는 프로그램의 네임스페이스로 함수 이름을 임포트 하는 것과 모듈만 임포트하는 것이 무슨 차이가 있고 어떤 의미가 있는지 헷갈렸었는데, 이번 기회를 통해 확실히 알게 되었다. 이 외에도 다른 책에서는 '그냥 이렇게 쓴단다.'라며 넘어가는 내용들이 '바보 같은 질문이란 없습니다'와 같은 섹션에서 좀더 궁금증을 해소할 수 있도록 다뤄지고 있어서 좋았던 것 같다. 대부분의 개발 이론서들이 기본이면 기본에 충실하고, 그 외의 각 주제에 대해서는 다른 책이나 방법들을 찾아가는 형식인데 반하여, 다소 중간에 지루하고 흥미를 잃을만한 부분부터 바로 플라스크 프레임웍을 사용하여 실제 웹서비스를 구현해 보는 방향으로 내용이 전개되는 것이 마음에 들었다.


 

한편 단점을 꼽는다면, 종이 재질이 어떤 것인지는 잘 모르겠지만 불빛 반사가 좀 있어서 장시간 읽자니 눈이 좀 피곤했다.


 

특정 개발 언어에 어느정도 익숙한 사람이라면 좀더 쉽게 읽히겠지만, 개발에 기초지식이 적으나 파이썬에 도전해보고 싶은 사람도 어느정도 따라해가며 익힐 수 있는 책인 것 같다.

 < 해당 포스트에서 다루고 있는 "Head First Python 개정판"은 한빛미디어로부터 지원을 받고 이에 대한 서평을 쓴 것임을 알려드립니다.>

 바로 이전 책 리뷰에서는 "엔지니어를 위한 파이썬"을 소개했다. 사실 그 글 서두에서도 언급했던 이야기이지만 Python이란 언어는 정말 전세계적으로 많이 쓰이는 언어이다. 그 근거로 TIOBE Index를 소개했었는데, 문득 이번달의 결과도 한번 소개해보고자 한다.

 여전히 python은 JAVA, C, C++과 더불어 많이 쓰이는 언어 중에 하나이며, 아마 짐작으로는 현재와 같이 머신러닝/딥러닝 이나 웹앱 개발이 많이 이뤄지는 개발 트랜드라면 먼 미래에도 여전히 많이 쓰이고 있는 언어로 자리잡고 있지 않을까 싶다. 뭐 아무튼 이런 기류에 맞춰 시중에 보면 정말로 다양한 Python 개발책들이 많이 나와있다. 그리고 Python을 통해 개발할 수 있는 주제들에 대한 책들도 정말 많이 나와있다. 

 이쯤되면 처음 접하는 개발자들도 딱 원하는게 적당한 입문서가 될 것이다. 물론 이전에 소개한 "엔지니어를 위한 파이썬"은 조금 python이 익숙한 상태에서 조금더 심화된 주제를 다룰 사람에게 권하는 책이고, 이번에 추천할 책은 오라일리의 대표적 입문서 시리즈인 "Head First" 시리즈의 Python 편이다.

 사실 내가 제일 처음 접한 Head First 시리즈는 C 언어였다. 

 참 재미있는게 그때 받은 느낌이나 이번에 새로 나온 Python을 읽을 때나 느낌이 비슷했다. 참고로 Head First C 쓸 때의 Review를 잠깐 가져와서 보면 다음과 같이 책의 느낌을 묘사하고 있었다.

무엇보다도 이 단행본 시리즈가, 그것도 공학이라는 생소한 영역에서 오랫동안 출판할 수 있었던 이유는 책에서만 찾아볼 수 있는 재미가 아닐까 싶습니다. 책들을 살펴보시면 정말로 곳곳에 깨알같은 재미가 있습니다.

출처: http://talkingaboutme.tistory.com/387 [자신에 대한 고찰]

 그리고 책을 읽는 지금도 그때와 비슷하다.

 일반적인 입문 책처럼 단순히 문법 설명하고, 코드를 Line-by-Line 형식으로 설명하는게 아니라 책 자체가 하나의 잡지책처럼 되어 있다. 그리고 윗 사진에도 나와있는 내용이긴 하지만, 중간중간 "핵심 정리"란 항목이나 "바보같은 질문이란 없습니다"란 항목을 통해 Python을 처음 접하는 입문자가 가질 수 있는 궁금증에 대해서도 답을 제시하고 있다. (개인적인 생각이긴 하지만, 컴퓨터 기술을 소개하고 있는 책 중에서 "사람"이 가장 많이 등장하는 책이 아닐까 하는 생각을 해본다...)

 그리고 중간중간 주석처럼 붙어있는 말풍선이나 메모 내용들은 단순히 상세한 설명을 넘어서 책을 눈으로 훑어보는 독자한테 재미를 준다. 

그리고 Head First 시리즈의 특징일 수도 있는데, 손코딩을 하는 사람들을 위해서 손으로 써보고 결과를 확인해볼 수 있는 섹션들이 나열되어 있다. 

 그리고 개인적으로 맘에 들었던 부분은 다루고 있는 예제가 전개되는 형식이다. 보통 python에서 가장 많이 설명되는 List나 Dictionary,Tuple type에 대한 설명을 보면 일반적으로는 List가 무엇이고, Dictionary가 무엇이고, tuple이 무엇이다는 형식으로 진행되고, 이에 각각을 써볼 수 있는 예제가 주어지는 형식으로 진행된다. 그런데 Head First Python 에서는 하나의 예제를 진행하면서 필요한 개념들을 소개하는 식으로 전개된다. 물론 이때문에 Python의 특정 구문에 대한 설명을 찾으려면 맨 앞의 목차를 쭉 읽으면서 맞는 주제를 찾아나가야 하는 번거로움이 있지만 적어도 처음부터 꾸준히 따라가는 독자한테는 예제를 직접 실습해보면서 내용도 이해가 되는 부가적인 효과를 얻을 수 있을 것 같다. 

 끝으로 입문서라면 그냥 넘어가기 쉬운 부가 정보에 대한 설명들이 알차게 들어있다. 예를 들어 PEP(Python Enhancement Proposal)에 따른 규약이라던가 일종의 Static Analysis Tool이라 할수 있는 pytest에 대한 내용, 그리고 뒷장의 flask 예제를 통해 설명되는 DataBase에 대한 내용 등이 포함되어 있어, 단순히 Python의 문법이나 내용에 국한된게 아닌 그 이상을 얻을 수 있는 장점이 포함되어 있다.

 

 사실 서두에서 "머리를 들이밀 수 있는" 라는 부제를 달았지만 공식적으로 Head First 시리즈에서 추구하는 목적은 크게 다음과 같은 단어로 요약할 수 있다.

pictures(그림), redundancy(중복), interest(재미), activities(활동), story(이야기), challenge(도전)

 위 단어들에도 함축적으로 표현되어 있다시피, Head First Python은 그림을 통해 독자들에게 재미를 주고, 다양한 활동과 도전과제를 통해 뭔가 시도를 하게끔 유도하는 내용들이 많이 담겨있다. 추가로 flask를 이용한 예제와 같이 웹앱을 실제로 구현해보면서 눈으로도 결과를 바로바로 확인해보고 익힐 수 있는 예제들이 포함되어 있기 때문에 뭔가 python을 도전적으로 배워보고자 하는 사람에게는 적극 권한다.

 

P.S 1: 사실 이전에 한빛미디어에서 출판된 Head First Python을 보유한 사람이라면 이 책의 필요성에 대해서 좀 고민할텐데, 많은 부분이 바뀌었다. 우선 Python 2를 다루던 기존 판과 다르게 이번 판에서는 Python 3를 활용해서 설명한다.(당연히 기존의 문법과 상당부분 다르다) 또한 기존의 판에서 페이지가 100여장 정도 추가되면서 일부 심화 주제(스레드, 예외처리, 함수 장식자) 등에 대한 내용이 추가되었다. 따라서 python 3을 활용해야 할 사람이라면 구입이 필요하다.

P.S 2: 해당 책의 예제 자료는 http://python.itcarlow.ie/ed2/ 에서 받을 수 있다. 홈페이지 상에서는 명시되어 있지 않아 좀 찾아야 한다.

  컴퓨터 언어를 배울 때 늘 신경쓰이는 것은 이 책이 나에게 맞느냐 인 것인데, Head First 시리즈의 책들은 그런 측면에서 늘 호불호가 갈릴 수 있다는 생각이 든다. 금번에 개정판이 번역된 Head First Python 역시 그런 측면이 있다고 생각한다.

 

B1306099216_l.jpg

 

  기억하기로 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으로 설치해 다시 시도해 보았고 이 경우는 문제가 없이 설치되었다.

 

아주 좋은 책이다.

 

잘 짜여진 이야기를 풀어나가는 것처럼 술술 나아간다. 분명 이렇게 만들기 위해 여러번 고쳐썼을 것이다.

 

헤드퍼스트 특유의 만담은 파이썬을 더 잘 이해하게 해주고

 

setuptools를 사용하여 간단한 모듈을 만들어보는 것도 멋졌다.

 

python의 깊은 내용은 알 수 없었지만, 파이썬을 만나볼 수 있었다.

 

책을 다보면 나도모르게 web개발을 할 수 있을 정도의 연결고리를 만들어준다.

 

알게모르게 배워야 하는 것들을 다 배운 것 같다. 

 

파이썬에 대해 알고 싶은 사람들은 다른 책보다 

일단 헤드퍼스트 파이썬을 먼저 만나서 파이썬이 무엇인지 파이썬이 무엇을 추구하는지 알아보고 다른 정보들을 접하기를 추천한다.

스스로 질문하면 답을 찾는 파이썬 도서 리뷰 <Head First Python>
 

headfirstpython.jpeg

 

 
불편한 첫인상
Head First 시리즈 책을 보는 것은 처음이다. 서점에서 보았던 인상은 정신 사납다는 느낌이었다. 책 중간 중간에 사람 사진이며, 그림과 사람 사진을 오고 가는 화살표와 선들 그리고 사람들 옆에 붙어 있는 만화를 연상 시키는 듯한 말머리 상자 덕분이었다. 
 
보통 프로그래밍 책들은 코드 부분에서 독자들이 잘 볼 수 있도록 컬러로 나타내는 부분이 많은데, 이 책을 처음 봤을때에는 전부 회색조라 참으로 불친절 하구나 생각도 했다. 과연 책에 나와 있는 코드를 제대로 입력했는지 작동 시켜보기 전까지는 알 수 없으니 말이다.
 
그래서 구입해서 본적이 없었는데 한빛미디어의 "나는 리뷰어다!” 에 지원하여 이렇게 만나게 되었다.
 
어?! 괜찬은데?
과연 집중이 잘 되려나 약간의 의심을 가지고 읽어 나가다 보니 서두에 앞에서 느꼈던 부분들은 한낱 기우 였음을 느끼게 되었다. 파이썬 내용이 쉬운 건지 알기 쉽게 설명을 하는 것인지 분간이 안될 정도로 집중해서 읽어 나가게 되었다.
 
구조가 한 페이지안에서 간결하게 예제와 설명이 진행되고 또 다음 페이지에 자연스레 이어지는 구조 이다 보니 소설을 읽듯이 읽어 나갈 수가 있었다. 책에서도  이야기 했지만 대화체 구조의 서술 방식이 한몫 더 거들었 다고 생각한다. 이 부분에서는 책 서두에서도 밝히고 있는 부분이다. 처음에는 그러려니 했는데 곧 이해가 되면서 그 효과에 대하여 수긍 할 수 밖에 없었다.
 
제목의 글씨와 내용의 글씨가 각기 다른 글씨체로 되어 있어 질리지 않고, 제목에 먼저 눈이 가도록 하여 시선이 책 밖으로 나가는 것을 방지 하는 기분이 들었다. 그럼에도 약간의 색깔을 넣어서 강조해야 할 부분이라도 표기를 해주면 어떨까 싶은 아쉬움이 있다.
 
저자는 완전한 프로그래밍 초보를 대상독자로 하지 않고 프로그래밍 경험을 가지고 있으나 파이썬을 처음 접하는 사람을 대상으로 한다고 한다. 그래서 이해가
쉬었을 거라는 생각이 들면서 프로그래밍에 대한 아무런 이해가 없는 사람이 보았을때는 어떤 느낌일지도 궁금하다.
 
내용에서 플라스크와 엮어 웹앱을 다루는 예제를 다루는 부분이 있는데, 이러한 부분들은 학습 하는 입장에서 아이디어를 더해 자신만에 프로젝트를 만들어 갈 수 있는 기회라고 생각한다. 단순히 문법 소개에 치우친 예제들을  가지고 학습을 하게 되면 정적 문법만 공부 하고 나서 무엇을 해야 할지 몰라 방황 하는 경우들이 많은데, 그런 부분에 대한 예방책이 된다고 생각한다. 
 
그래서
막연하게 알고 있던 파이썬을 쉽게 이해 할 수 있었고 또 다른 언어들과의 다른 장점을 간단한 예제들을 통해 실감 할 수 있었다. 왜 쉽다고 하는지, 생산성이 높다고 하는지 말이다.  
앞으로는 다른 프로그래밍 언어나 기술 서적을 봐야 할 일이 있다면 제일 먼저 Head First를 봐야 겠다는 생각이 든다. 
물론 파이썬을 공부 하겠다는 사람에게는 더 할 나위 없는 책이라고 적극 추천을 하겠다.
 
이런 분들 이라면 적극 추천
  1. 파이썬에 대한 아주 얇은 기본서를 학습 한 분
  2. 문법 나열과 소개의 방식에 지친 독자
 
"<Head First python>의 자세한 내용은 한빛 미디어 홈페이지에서 확인 하실 수 있습니다”

오랜만에 한빛 책을 리뷰하게 되었다.

 

이번 리뷰하는 책은 바로 유명한 입문서 시리즈인 'Head First Python' 이다.

 

Head First Python

Head First Python

폴 배리 저/우정은 역

최신 인지과학이론을 바탕으로 반복학습/재미요소를 모두 갖춘 파이썬 학습서 
이 책은 『Head First』 시리즈 학습 원리에 기초하여 모든 페이지가 그림과 대화체를 바탕으로 구성되어 있습니다. 딱딱한 강의식 말투보다는 개인적으로 대화를 나누듯 재미있는 설명으로 파이썬을 다룹니다. 또한 80개가 넘는 실습을 직접 해보면서 더 잘 배우고 기억하도록 만들어졌습니다. 『Head First Python, 개정판』은 여러분의 두뇌를 끊임없이 자극합니다. 이 책을 덮을 때쯤이면 자신도 모르는 사이에 파이썬이 학습되어 있을 것입니다!

 

다른 시리즈들을 이미 여러차례 읽어본 적도 있고, 입문서로 비전공자들에게도 많이 추천하고 있는 시리즈이다.

 

기존 Head First Python은 python 2.X 버전 기준으로 작성 되었는데, 이번 개정판은 3.x로 개정되었다.

 

파이썬은 문법이 다른 프로그래밍 언어보다 쉬워서 접근하기 상당히 수월하다.

- 개인적으로 아는 선배는 슈도 코드 같아서 쓰기 싫다고도 했다.

 

*슈도코드(Pseudo Code) : 특정 프로그래밍 언어의 문법을 따라 쓰인 것이 아니라, 일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드

의사코드(슈도코드, pseudocode)는 특정 프로그래밍 언어의 문법을 따라 쓰인 것이 아니라, 일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드를 말한다. 의사(疑似)코드는 말 그대로 흉내만 내는 코드이기 때문에, 실제적인 프로그래밍 언어로 작성된 코드처럼 컴퓨터에서 실행할 수 없으며, 특정 언어로 프로그램을 작성하기 전에 알고리즘의 모델을 대략적으로 모델링하는 데에 쓰인다.

의사코드는 실제 프로그래밍 언어처럼 엄밀한 문법을 따를 필요가 없기 때문에 다양한 변종이 존재한다. 그러나 보통 사용자가 많은 C 리스프, 포트란 프로그래밍 언어등의 문법을 본딴 모양이 많다. 엄밀한 묘사가 불필요한 부분에는 자연어가 자유롭게 쓰이기도 한다.

컴퓨터 과학의 전공 서적에서는 다양한 언어 구사자들이 모두 이해할 수 있도록 특히 의사코드를 많이 사용하여 설명한다. 또한 보통 의사코드는 저자마다 그 문법이 다르기 때문에, 의 서두에는 의사코드의 문법이 간략히 설명되어 있기도 하다.

- 참고 : 위키피디아 (https://ko.wikipedia.org/wiki/%EC%9D%98%EC%82%AC%EC%BD%94%EB%93%9C)

 

슈도코드와 비슷하게 보일정도로 간결하기도 하다.

 

물론 중괄호를 쓰지 않고 들여쓰기를 하기 때문에 코드 읽는 것에 익숙하지 않으면 어려울 수도 있지만, 그게 오히려 장점일 수도 있다.

 

그리고 가장 큰 장점은

- GUI도 가능하며,

- 웹도 간단하게 만들 수 있고, (플라스크나 장고)

- DB 접근도 쉽고

- 최근에는 통계용(Pandas)으로도 많이 쓰고 있다.

 

아무튼 파이썬은 그리하여 초등학생들 코딩 열풍에도 한 몫을 하고 있는 언어인데, 이책은 초등학생들 보다는 성인들이 읽기 좋은 책이다.

 

특히 비전공자가 보기 좋은 것은 그림과 사진이 많다는 것이고, 그렇기 때문에 글로만 이뤄진 책들보다 이해하기 쉽다는 것이다.

- 그렇지만 head first 시리즈에 익숙하지 않으면(미국문화) 좀 낯설기도 하다.

 

다른 개발책과 다르게 "hello world"와 같은 튜토리얼 부터 시작하지 않는다.

- 이건 중요할 수도 있고 아닐 수도 있다.

 

책 전체가 대화체로 이루어져 있어서 초보자들도 쉽게 따라 할 수 있다.

심지어 코드 실행 방법이나 기본적인 라이브러리 구성들도 다 설명되어 있다.

그대로만 따라하면 쉽게 따라할 수 있다.

 

이책은 말그대로 입문서 인데,

파이썬에서 주로 쓰는 '플라스크' 나 DB 관련 API, 요즘 많이 사용하는 주피터 노트북 도 모두 조금씩은 다루고 있다는 것이 좋다.

 

물론 제대로 사용하려면 다른 책을 별도로 보거나,

웹사이트를 찾아서 공부해야겠지만 입문서에서도 이런 것이 있다 정도로 익히면 좋을 듯 하다.

 

 

지금까지 프로그래밍 도서는 개발자들만 읽는 책이였다.
그런데 이제는 아닐 것이다. 적어도 파이썬은..
 
올해부터 중학생 이상이면 코딩을 배운다. 뭘로? 바로 파이썬이다.
다른 언어도 많은데 왜 파이썬일까?
내 생각에는 간결하면서도 우리가 쓰는 언어와 가장 비슷하기에 접근하기가 쉽기 때문이 아닐까 생각해 본다.
 
초기 파이썬은 특정 개발자나 과학자들이 주로 사용하였지만 지금은 무척이나 광범위하고 널리 사용되고 있다.
생산성이 좋아 스타트업 회사들도 많이 사용하고 있다.
 
파이썬도 점점 더 성능이 좋아지고 버전업이 되어 벌써 3.6버전이 나왔다.
아직까지 2.X 버전이 많이 사용되고 있긴 하지만 이제 새로이 파이썬을 접할 분들이게는 당연히 3.X버전이 좋을 것이다.
'Head First Python'은 이미 출간된 책이지만 이전에는 2.X버전을 다루었고, 이번 개정판에서는 3.X를 다루고 있다.
Head First는 O'Relly사에서 나오는 IT 전문 브랜드이다.
 

Head First Python.png

 

 
이 시리즈는 매니아층을 형성할 정도로 독특한 매력을 자랑한다.
대다수의 전문 프로그래밍 서적들이 글과 코드로 구성되어 있는 반면에 이 시리즈는 글보다 많은 그림과 사진을 보여준다.
이는 이 시리즈의 특징으로 인간이 새로운 것을 익히는데 있어 중요한 것이 이미지이기에 글보다는 더 빨리 배울 수 있는 그들만의 방법을 만들었다.
처음 접하는 사람들은 '도대체 무슨 말을 하고 있지?'란 생각이 들 수도 있지만, 차근차근 따라가다 보면 '어? 내가 벌써 이 정도야?'란 감탄을 자아낼 것이다.
파이썬을 처음 접하는 사람들도 코드 한줄한줄을 따라가다보면 확실히 이해할 수 있게 되어 있다.
무엇보다 파이썬이라는 언어의 특징이기도 하지만 제시하는 코드가 심플하여 더욱 쉽게 따라할 수 있다.
파이썬의 기초 문법부터 웹앱, 데이터베이스까지 다루고 있어 바로 실전에서 응용할 수 있다.
무엇보다 중간중간에 실전에서 처할 수 있는 어려움까지 미리 알려주어 핵심과 팁을 함께 할 수 있다는 장점이 있다.
 
이 책은 파이썬을 어느 정도 다루고 있는 사람에게는 큰 매력으로 다가오지 않을 수 있다.
하지만 이제 프로그래밍을 배우고 싶거나, 다른 언어를 알지만 파이썬을 모르는 사람들에게는 파이썬의 매력을 제대로 전할 수 있는 책일 것이다.
 
Life is too short, You need Python
파이썬의 모토만 봐도 배우고 싶다는 생각이 들지 않는가?
이 책이 당신의 짧은 인생을 낭비하지 않게 해 줄 것이다.

처음엔 생각보다 두꺼운 책에서 느껴지는 건 파이썬 튜토리얼 정도일 거라는 생각으로 책을 넘기기 시작했다.


조금씩 읽어가다 보면 이런 말이 나온다.

 

지금쯤 여러분은 이런 생각을 하고 있을 겁니다.

"이거 파이썬 책 맞아?"

"이 그림들은 다 뭐야?"

"이런 식으로 정말 파이썬을 배울 수 있어?"



* "이거 파이썬 책 맞아?"


앞부분을 읽다 보면 문득 이런 생각이 들 수밖에 없다.


다른 컴퓨터 언어 책과 달리 어떻게 하면 기억을 잘 할 수 있을까에 대한 고민을 하고 있다.


흡사 기억력에 대한 책 같았다.


책의 구성을 왜 이렇게 했는지에 대한 고민의 흔적이 느껴지게 하는 부분이다.




 "이 그림들은 다 뭐야?"


책에서 자주 등장하는 그림들은 해외서적이라 그런지 우리 정서와 맞지 않는 이미지와 일러스트들이 좀 올드한 느낌을 준다.


독자와 대화하는 듯이 대화체로 구성돼 있고 기초를 아주 쉽고 자세히 설명하고 있다.


그래서 이 부분 때문에 양이 많아진 것 같다.


여담이지만 간혹 등장하는 외국 여자가 '바람과 함께 사라지다' 비비안리 닮았다.




 "이런 식으로 정말 파이썬을 배울 수 있어?"


다른 언어 책과는 다른 전개방식을 가지고 있다.


첫 예제로 흔한 'hello world'도 없다.


목차만 10장 정도여서 자세한 것 같지만 다 들어가 있지는 않고 눈에 확 들어오질 않는다.




 독자층에 대한 견해


이 책에서는 아주 프로그래밍에 대해 1도 모르는 사람도 이해하기 쉽게 돼 있다.


하지만 다른 언어로 프로그래밍을 살짝 해본 초급 프로그래머들이 보면 더 파이썬에 대한 이해도가 높아지지 않을까 싶다.




 특징


1. 파이썬이라는 언어에 대한 아주 기초적인 부분을 쉽게 설명하고 있다.

2. 설명 중간에 하드웨어적인, 즉 메모리 부분에 대한 설명도 깊지는 않게 다루고 있어 '왜'라는 것에 대한 좀 더 이해도를 높인다.

3. 보통 단원이 마무리되면 핵심정리를 하는 데 반해 예제를 설명하는 중에도 흐름을 잊어버리지 않게 핵심정리를 해 준다.

4. 딱딱한 문법이 주가 된 설명이 아닌 예제를 중점에 두고 해석을 하면서 문법에 접근한다.

5. 하나의 에러를 해결하기 위해 여러 가지의 방법을 제시한다.

6. 어떤 문제에 대한 최적화된 해결방법을 제시하려고 노력한다.

7. 처음 파이썬을 접하고 코딩을 하는 사람들에게 코딩법에 대해 가이드도 제시한다.

8. 방대한 내용으로 설명을 다 하지는 못하지만 파이썬 언어로 파생되는 가능한 작업에 대한 다양한 길을 부록에 제시한다.

9. 구성의 레이아웃, 폰트 등이 책을 읽어 내려가는 가독성에 방해가 되는 느낌이다.

10. 다른 언어로 개발한 경험이 있다면 파이썬이 타 언어와의 차이점 등을 위주로 보면 시간을 아낄 수 있을 것이다.

11. 파이썬에 대한 깊이 있는 내용은 이 책보다는 파이썬 언어로 가능한 작업을 확인했다면 해당 부분의 다른 서적이나 자료를 활용하는 것이 더 효과적이다.



 언어에 대한 개인적인 견해


파이썬은 커뮤니티다.라는 말이 있다.


파이썬으로 작업 가능한 부분이 어느 언어보다 넓고 활용 가치는 무궁무진하다고 본다.


앞으로도 더 많은 개발자가 참여할 것이고, 더 다양한 방면으로 발전될 것이라 예상해 본다.




 아쉬운 부분


[소스링크]


책에서 나오는 코드 위치를 다운 받을 수 있는 곳으로 아래와 같이 3가지로 안내하고 있다.


http://bit.ly/head-first-python-2e

http://python.itcarlow.ie

http://www.hanbit.co.kr/src/10028

위 링크들에 소스가 없거나 찾아 들어가야 한다.


소스가 있는 페이지 : http://python.itcarlow.ie/ed2/



[오타]


p78 : IDEL -> IDLE


p294 : read 메소드를 시용하면 '한번에' -> 사용하면


p297 : 로프파일의 데이터로 escape를 호출하면 -> 로그파일

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
Head First Python, 개정판
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Head First Python, 개정판
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Head First Python, 개정판
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

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

자료실

최근 본 상품1