어느덧 2판이 출간된 전문가를 위한 파이썬, 그리고 중급 개발자 이상이 되기 위한 언어 학습
“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”
내가 처음 개발 학습을 시작했던 2018 ~ 2019년, 멋쟁이사자처럼이라는 교내 동아리에 가입해서 웹 개발로 개발의 세계에 입문하면서 처음 구매했던 책이 전문가를 위한 파이썬 1판이었다.
책 제목에서 보는 것처럼 “전문가를" 위한 파이썬이기 때문에 어느 정도 파이썬 언어에 숙련되어 있지 않으면 쉽사리 책 내용이 와닿지 않는데, 무작정 사서 공부했던 게 기억난다.
그 책이 어느덧 2판이 출간되었고, 현재 파이썬은 3.13이 출시되어서 GIL 이 삭제되는 등 많은 변화가 있어왔다.
그리고 나도 어느덧 개발과 관련한 업을 얻어서 일을 시작한지 5년 가까이 되었고 (베트남에서 강사 업무를 하던 시절까지 포함) 그 과정에서 파이썬 백엔드와 여러 종류의 스크립트를 작업할 일들이 많았다.
문제는 최근 AI 가 급부상하면서 업무에 간단한 스크립트들은 chatgpt를 사용할 빈도가 높아졌고 (실제로 업무 볼 때는 사용할 코드가 어떻게 동작하는지만 파악이 되면 바로 적용했기 때문에) 언어의 본질에는 다가가지 못한다는 생각이 들었다.
최근에 이직도 확정되어서 약 3주 정도 시간이 비는데 잘됐다고 생각이 들어서 이 기회에 잠깐 AI는 손에서 내려놓고 천천히 파이썬에 대해 잘 알아가는 시간을 가져야겠다고 판단하게 되었다.
개발 실력이 늘어나는 것과 별개로 언어에 대해 깊이 학습하는 것은 평소에 직장을 다니면서 병행하기에는 많이 어렵다는 생각이 들었다.
무엇보다 친동생이 이번 3주 동안에는 자꾸 일벌리는 나를 위해 아무것도 하지말고 책 읽고, 주변 돌아다니기만 하라는 조언을 했기 때문에 내년을 위한 준비 느낌으로 파이썬 중급 개발자 이상으로 거듭나기 위한 동면(?)을 진행하게 되었다.
책을 읽을 때 아무래도 1부 책을 한 번 읽어봤던 사람 입장에서 변경된 부분부터 목차에서 확인하고 읽기 시작했는데 역시 제어 흐름 부분 (특히 동시 및 병렬 처리에 대한 새로운 내용들)이 업데이트가 있었고, 테스트 코드 구성도 내장 클래스인 unittest보다는 pytest를 기반으로 구성하는 것을 볼 수 있는데, 최근에 DevOps 강의 때문에 pytest를 좀 사용해서 강의 자료를 구성해봤는데 unittest보다 가독성도 좋고 사용하기가 너무 편하다.
책에서 이런 파이썬 도구들의 트렌드가 넘어오는 것도 잘 반영해서 구성하는 것이 무척 좋았고, 무엇보다 책에서 사용하는 실습 코드들의 파이썬 버전이 3.10으로 파이썬 언어에 대한 support가 충분히 있는 버전을 선택한 것도 책 집필 시점을 기준으로 상당히 보편적으로 사용되고 있는 최신 버전을 잘 선택한 것이 아닌가 싶다.
파이썬 내장 기능은 아니지만, 데이터 사이언스나 ML 분야에서 필수로 사용하고 있는 numpy에 대한 소개나 15장에서 자료형 힌트에 대해 좀 더 소개하는 부분들을 보면 파이썬이라는 언어에서 컴퓨팅 연산을 좀 더 최적화시켜 사용하기 위한 흔적들과 기존에 제공하던 덕 타이핑 방식에서 좀 더 큰 규모의 서비스를 운영할 때 정적 타이핑이 얼마나 중요한지 많이 고려를 했다는 것들을 볼 수 있다.
중급자를 위한 책인만큼 책에서 다루는 내용이 상당히 깊어서 파이썬이라는 언어로 밥벌이를 하는 모든 엔지니어들을 위해 권장할 수 있는 도서라 생각한다.
AI의 최대 장점이자 단점은 사용자가 프롬프트로 물어보는 내용에 대해서만 답변을 얻을 수 있다는 것이기 때문에, 우리가 놓치고 넘어가는 것들이 많다.
그래서 더더욱 언어나 시스템에 대한 설계 철학에 대해 잘 이해하는 것이 중요하다고 생각한다.
기술에 대해 의존성이 너무 크면, 그 기술이 부재할 때 업무가 마비되는 상황에 직면할 수 있으니, 늘 틈틈이 기본기에 대해 잘 학습해두자.
Ryan