[지은이 소개]
알 스웨이가트(Al Sweigart)
시애틀에 거주하는 소프트웨어 개발자이자 기술서 저자다. 프로그래밍 언어 가운데 파이썬을 가장 좋아해서 파이썬용 오픈 소스 모듈을 여럿 개발했다. 직접 집필한 모든 책을 크리에이티브 커먼즈 라이선스하에 웹사이트(https://www.inventwithpython.com/)에서 무료로 읽을 수 있도록 공개해뒀다.
[지은이의 말]
이 책을 그저 클린 코드 작성에 유용한 팁 모음집 정도로 보면 오산이다. 이 책은 명령행을 누비고 코드 포매터, 타입 검사기, 린터, 버전 관리 등 각종 전문 도구의 활용법을 보여준다. 저자 알 스웨이가트는 개발환경 설정, 변수 이름 짓기, 가독성 향상을 위한 모범 사례부터, 문서화, 코드 구성, 성능 측정, 객체 지향 설계, 빅오 알고리즘 분석까지 온갖 지식과 노하우를 전수해준다. 이 책에서 설파하는 중고급 기술은 파이썬뿐만 아니라 모든 언어에서 유용하며, 여러분의 프로그래밍 능력을 크게 향상시켜줄 것이다.
아무리 좋은 책이라도 한 권을 읽고 바로 전문 소프트웨어 개발자가 될 수는 없겠지만 이 책은 디버깅하기 쉽고 파이썬다우며 가독성 높은 코드를 작성하는 법을 명쾌하게 안내해 준다. 여러분 앞에 전문가로 가는 길이 곧 성큼 앞으로 다가올 것이다.
[옮긴이 소개]
박재호
포항공과대학교 컴퓨터공학과 학부와 대학원을 졸업했다. 임베디드 시스템 개발, 기업용 백업 소프트웨어 개발, 방송국 콘텐츠 수신제한 시스템 개발과 운영 지원, 클라우드에서 동작하는 서비스 개발에 이르기까지 다양한 실무 경험을 토대로 고성능 고가용성 시스템을 설계하고 있다. 코스닥 상장사인 엑셈 CTO로 인공지능과 스마트팩토리 관련 개발을 총괄했으며, 클라우드용 모니터링 시스템을 위한 아키텍처 설계도 주도했다. 『마이크로서비스 도입, 이렇게 한다』(책만, 2021), 『Clean Code 클린 코드』(인사이트, 2013), 『피플웨어』(인사이트, 2014) 번역, 『엘라스틱 스택 개발부터 운영까지』(책만, 2021) 감수 등 번역·감수하거나 집필한 책이 40여 권이 넘는다.
각종 기술 소식을 다루는 블로그 ‘컴퓨터 vs 책’(https://jhrogue.blogspot.com/)과 개발자를 위한 유튜브 ‘채널 박재호’(https://www.youtube.com/c/박재호dev)를 운영하며, 개발자들을 위한 각종 교육과 세미나도 지속적으로 진행하고 있다.
김동현
연세대 컴퓨터공학 학·석사를 졸업하고 네이버 검색 부서와 현대자동차 AIRS 컴퍼니에서 백엔드 서빙을 전문적으로 다루고 있다. 검색/추천의 전문성 키워드 아래에 현재 컨테이너 기반 파이썬/Golang 위주의 개발 프로젝트를 주도하고 있으며 이따금씩 후학 개발자들을 위해 따로 멘토링을 제공한다.
[옮긴이의 말]
로버트 C 마틴의 『클린 코드: 애자일 소프트웨어 장인 정신』이 출간된 이후로 깨끗한 코드 작성과 리팩토링에 대한 개발자들의 관심은 나날이 높아지고 있다. 가독성 높은 코드가 제공하는 유지보수 편의성과 기능 확장 가능성은 레거시 코드를 다루는 개발자는 물론, 처음부터 프로젝트를 시작하는 개발자들도 추구해야 하는 소프트웨어의 속성으로 인정받고 있다. 이를 위해 다양한 실천 방법과 우수 사례가 공유되고 있으며, 통합개발환경(IDE)의 발전으로 인해 자동화의 혜택까지 얻을 수 있다. 하지만 이렇게 무르익은 분위기와 환경에서도 뭔가 2% 부족함을 느낀다면 딱히 당신만의 문제는 아니다.
다른 여느 프로그래밍 언어와 마찬가지로 파이썬 역시 입문은 쉽고 마스터하기는 어렵다. 특히 여타 프로그래밍 언어와 비교해 파이썬은 고수준 특성으로 인해 처음 문턱을 넘기가 상대적으로 쉽기 때문에 초보 개발자들은 컴퓨터로 할 수 있는 다양한 가능성에 눈을 뜨게 되지만, 막상 실전에 부딪혀 문제를 풀려고 하면 그제서야 파이썬이 결코 만만하지 않다는 사실을 깨닫고 충격에 휩싸이게 된다. 파이썬 언어의 문제일까? 아니면 복잡한 라이브러리와 프레임워크의 문제인가? 아니면 컴퓨터 하부 지식을 모르는 내 기초 역량의 문제인가? 정말 고수들은 어떻게 파이썬을 사용하고 있으며 그 과정에서 남들은 내가 모르는 파이썬의 어떤 비밀을 알고 있을까?
『클린 코드, 이제는 파이썬이다』는 제목에서 잘 드러나듯이 클린 코드를 파이썬에 적용해서 파이썬다운 코드를 만드는 방법을 소개한다. 기존의 클린 코드 관련 서적과 온라인 문서에서 다루는 내용을 파이썬에 그대로 이식하는 대신, 이 책은 초보 개발자가 우수 개발자로 탈바꿈하는 과정에서 반드시 넘어야 하는 장애물을 파악하고 이를 정석대로 해소하는 방법을 다양한 사례와 팁으로 제시한다는 특징이 있다. 이 책은 전문가처럼 정보를 찾고 명령행을 활용하고, 클린 코드에서 중요하게 생각하는 이름을 지으며, 코딩 스타일과 포매팅, 코드 악취 해소, 효율적인 함수 작성, 주석과 타입 힌트에 대해 파이썬다운 지침을 따르고, 파이썬의 기이한 특징과 함정들을 잘 피하기 위한 실전 팁과 현업의 요령을 소개한다. 또한 컴퓨터 전문 지식을 강화하기 위해 각종 프로그래밍 용어, 반드시 알아야 하는 핵심 버전 관리 방법, 알고리즘 성능 측정에 대한 이론과 도구, 객체지향에 대한 설명도 빼놓지 않는다. 앞쪽에서 습득한 지식을 바탕으로 마지막에는, 간단한 게임을 파이썬다운 객체지향 방식으로 확장해 나가는 방안을 단계별로 제시하므로 점진적으로 발전하고 확장 가능한 소프트웨어 개발에 대한 감을 잡을 수 있도록 배려한다.
이 책이 획기적인 돌파구를 마련해주지는 않을지 몰라도, 매일 조금씩 실력을 높이고 싶은 개발자들에게 동기를 부여하고 출발점을 알려주며 도전에 직면했을 때 두려워하지 않도록 기초를 튼튼하게 다지는 내용으로 매우 알차게 구성되어 있다. 이 책을 읽고, 책에서 배운 내용을 실행해보며, 자신만의 색깔로 바꾸는 과정을 반복하다 보면 어느 순간 소프트웨어 전문 개발자로 거듭난 자신을 발견하게 될 것이다. 아무쪼록 독자 여러분의 개발 여정에서 이 책이 훌륭한 스승이자 좋은 벗이 되면 좋겠다.
- 박재호
자바, Golang, C++ 같은 언어에 비해 파이썬이라는 언어가 지니는 독특함이 있다. 다른 언어보다 접근성이 좋고 설명하거나 이해하기 쉽지만 알고리즘 코딩 테스트에서의 실행 속도가 다른 언어에 비해 느린 측면도 있고 디버깅에 어려움을 표현하는 개발자들도 있다. 으레 파이썬 전문가라는 단어를 쓸 때 그 파이썬 전문가가 어떤 스킬이나 이해를 갖고 있는지, 어떤 스텝을 통해 후학들이 파이썬 전문가로 될 수 있는지를 설명하는 것을 일반적으로 숙련된 개발자들조차 어려워할 때가 많다.
이 책은 파이썬 입문서와는 거리가 멀다. 하지만 지나치게 현학적인 책과도 거리를 둔다. 초보자와 전문가의 중간 단계를 어떻게 메워 나갈 것인가에 대한 저자의 고민이 곳곳에 숨어 있는 것을 볼 수 있다. 이 책은 어려운 데코레이터를 쓰지도 않으며 심한 축약형 람다를 쓰지도 않는다. 하지만 초보자들이 한 스텝 더 실행해 볼 수 있는 여러 방법들을 제시해준다.