본문 바로가기
BOOKS BOOKS BOOKS

효율적 개발로 이끄는 파이썬 실천기술 – 제이펍

by 19810721 2021. 5. 18.

효율적 개발로 이끄는 파이썬 실천기술 제이펍

 

책의 제목에 기초’, ‘기본’, ‘원리가 적히면 가볍게 읽어볼 수 있지만, ‘실무’, ‘기술이라 적혀 있으면 절대 만만하게 보고 시작할 수 없다. 어느 정도의 기초를 가지고 덤벼야 한다. 이 책은 리뷰하는데 꽤 많은 시간이 필요했다. 우선 모든 문법 책(권법 무술의 비법서도 마찬가지다.)의 첫 장에는 이 책이 무엇을 설명하며 누구로부터 시작되었는지에 대한 재미없는 역사로 채워져있다. 1장은 가볍게 넘긴다.

 

 

대부분 책에서 알려주는 개발 환경 설정은 이미 시간이 흘러 빠르게 변한 환경을 반영하지 못한 채 구시대의 설치 방법을 표현해주는 경우가 많다. 특히 윈도우 사용자가 많으니 윈도우 환경에서의 설치를 기준으로 하겠다며 알려주고 끝나는 황당한 경우도 많았다. 이 책의 칭찬할 점은 개발자들이 많이 활용하는 Mac OS와 일반인들의 윈도우, 개발 변태들의 리눅스 환경까지 모두 설명한다는 점에서 100 점이다. 거기에 가상의 컨테이너인 도커 이미지를 통한 개발 환경 설정은 2021년을 지나가고 있는 현 시점에서 완벽한 가이드 역할을 한다. 예전에는 H/W 또는 O/S에 종속된 환경 설정으로 인해 시작부터 초심자들이 질려 버리기 일쑤였다. 자 이렇게 2장이 마무리 되고 본격적인 기술을 익히게 된다.

 

파이썬 언어에 입문하는 단계로 처음에 흥미 위주로 유투브 영상을 찾았다. 짧은 시간에 마치 모든 것을 다 알려준다는 식으로 문법을 설명하지만 기본적인 문법을 설명한 이후 심화과정을 들어가야 하는데, “이제 다 배웠으니 여러분의 꿈을 펼쳐보세요.” 라는 식이 많았다. (어디서 약을 팔어???), 그래서 패스트캠퍼스와 인프런을 통해 파이썬 강의를 유료로 구입하여 학습하였다. 그러나 모두의 이해 수준이 각각 다르듯 강사의 설명도 제 각각이고 무엇보다 장시간 하루종일 모니터 앞에 앉아 있어야 하는 것이 여간 곤혹스러운 일이었다.

하나 둘 셋..  게임처럼 각 단계를 격파하다 보면 어느 새 파이썬 개발자가 된다.

이 책을 다 읽고 보니 책에 각 챕터를 구분하는 빨간 라인이 보였다. 각 단계별로 조금씩 심화 과정으로 진입하는데, 활자로 정확히 현재 무엇을 학습하는지 키워드가 명확하다 보니 필요한 경우 유투브나 유료 동영상 강의에서 필요한 부분을 선택적으로 집중 학습하기 좋았다. 마치슈퍼 마리오게임을 하는 기분이 들었다. 각 스테이지의 목표가 정확하고 골에 다다르고 챕터가 끝날 때 악당 쿠퍼를 쓰러트리는 재미를 느끼면서 성취감이 들었다. 이 책은 13 챕터를 진행하면서 다음의 내용을 얻을 수 있다.

 

우선 3,4 장은 파이썬 언어가 가진 기초 문법과 제어 흐름이다. 이는 모든 프로그래밍 언어의 공통이니 어렵지 않게 통과 할 수 있다. 다음 5, 6장은 함수, 클래스, 인스턴스 부분이다. 이때부터는 사실 프로그래밍적인 사고가 반드시 필요한 부분이여서 초심자에게는 어려울 수 있다. 파이썬 언어에 제한을 두지 말고 다양한 자료를 통해 함수, 클래스, 인스턴스 그리고 아울러 오브젝트라는 키워드까지 모두 탐구해보길 바란다. 그리고 나서 이 책에서 설명해주는 파이썬의 문법을 익히기를 권한다. 초심자는 기초 지식없이 기술을 기능으로 익히게 되면 추후 이해의 부재가 주는 손해가 막심하다. 조금 더디더라도 부디 이해하고 기술을 익히자.

 

다음 7장은 그렇게 만들어 본 코드를 조립하기 위해 필요한 모듈, 패키지, 네임스페이스, 스코프에 대해서 배우게 된다. 이는 다른 사람 또는 어느 훌륭한 개발자가 만들어 둔 코드가 여러분의 코드를 조력할 수 있게 해주는 마법을 만나게 해준다. 8장에서는 파이썬 언어에 맞게 특화된 내장 함수와 특수 메소드들을 익히 된다. 이 부분은 사실 나도 글로 배울 때는 어려워서 다양한 동영상 학습 자료를 참조하여 학습하였다.

 

 

책이 모든 것을 담아낼 수 없다 .  결국 움직여야 하는 것은 당신이다 .

9장에서는 파이썬의 고급 기술 들어가시겠다. 여기부터는 흥미를 이끌어 조회수로 먹고사는 유투브에서는 찾기 힘든 깊이 있는 기술 내용이 시작된다. 제네레이터, 데코레이터, 콘텍스트 매니저, 디스크립터를 만나게 된다. 책에서 머물지 말고 인터넷에 있는 다양한 자료를 검색해서 꼭 본인 것으로 만들자. 기초 문법 조금 알고 뺑뺑이 (흐름제어) 할 수 있다고 그 언어의 전문가가 아니니 말이다. 10장에서는 동시처리와 병렬처리를 설명한다. 스레드 설명을 넘어 고급 기술인 코루틴을 소개하고, 실무 단계에서 꼭 알아야 하는 http server/client 처리를 어떻게 하는지 직접 보여준다. 실무에 앞서 해당 부분을 아는 것과 모르는 것은 큰 차이가 있을 테니 꼭 추가 자료로 학습하기 바란다.

 

11, 12장은 파이썬 개발자 뿐 아니라 모든 개발자에게 필요한 내용임에도 일반적인 기초 문법책에서는 잘 다루지 않는 내용이다. 어떤 상황이든 변화되는 상황에서도 안정적인 개발 환경을 구축하고, 개발된 내용을 신뢰하기 위한 테스트를 진행하는 것에 대한 실천이 담보되어야 하는 내용을 자세히 담아냈다. 사실 꽤 두꺼운 다양한 문법책에서 이러한 부분을 빼놓으니 개발자 중에 간혹 내 컴퓨터에서는 잘 되는데?” 라거나, “개발 일정이 바쁜데 테스트를 왜 지금 해?” 라는 말을 심심치 않게 듣는다. 그러나 책에서 이렇게 당위성을 담아주니 반갑지 않을 수 없다.

 

마지막으로 13장에서는 간단한 이미지 처리 프로그램을 직접 구상하고 작성하면서 동시에 버전관리 Git을 보여준다. 그리고 패키징과 테스트 코드, 테스트 자동화와 확인 그리고 완성된 프로젝트의 실행까지 과정을 설명한다. 실무에 비하면 너무나 간단한 프로젝트지만 실무 프로젝트에서 해야 하는 과정의 정석을 그대로 담았다.

 

컴퓨터 프로그래밍을 배우는 것은 가능하다면 즐겁게 그러나 빠짐없이 배워야 한다 생각하다. 어느 부분이 부족하면 실무 또는 실전에 들어가 고생하는 모습을 많이 보았던 탓이다. 이 책이 파이썬의 기초부터 실무 단계까지 모두 압축적으로 담겨 있다 보니 다소 파이썬을 처음 접하는 이에게는 어려움으로 다가올 수 있겠다. 그러나 이 책이 기초를 넘어 개발자의 기본기를 탄탄히 해주는데는 이만한 입문서가 또 없겠다 싶다. 단계가 올라갈수록 어려워지는 것은 게임이나 프로그래밍이나 매한가지다. 하나 분명한 것은 이 책이 매 챕터마다 주는 성취감은 감출 수 없기에 여러분도 나와 같은 고통(?)을 한 번은 꼭 이겨내고 깔끔하고 담백한 개발자가 되는 계기가 되기 바라며 또 권한다.

 

"제이펍(Jpub) <IT 전문서 리뷰어활동을 목적으로 책을 제공받아 작성된 서평입니다."