본문 바로가기

책읽기

[진지한 파이썬](쥘리앵 당주 著, 김영하 譯, 2021)

  • 젓가락질 잘해야만 밥을 먹나요라는 노래 가사가 있었다.
    • 내 기억으로, 중고등학교때까지 젓가락질을 제대로 못했다.
    • 손가락 길이방향으로 젓가락을 걸치고 손끝을 사용하는 젓가락질이 정석이라면,
    • 그때까지 난 손가락 둘째마디에 젓가락을 끼우고 손가락 전체 근육을 사용해 반찬을 집었다.
    • 어르신들께서 간혹 지적하셨지만 나는 속으로 밥 잘 먹어요 하며 무시하다가
    • 계기는 기억나지 않지만 나중에 커서도 지적받으면 안되겠다는 생각이 들어 다시 연습했다.
    • 지금은 젓가락질도 잘 하고 밥도 잘 먹는다.

     

  • 파이썬을 2008년에 구글링하며 혼자 배웠다.
    • C에서 matlab을 거쳐 접한 파이썬은 짧고 직관적인 명령어가 매력적이었다.
    • matplotlib으로 그래프를 .jpg, .png 형식으로 쉽게 찍어낼 수 있다는 것도,
    • os.system()으로 외부 프로그램을 자유롭게 실행할 수 있다는 것도 매력적이었다.
    • 내가 만들어 사용하던 프로그램들을 파이썬으로 바꿨고, 행복해졌다.
    • 10년 가까이 그렇게 썼다. 그리고 발전이 없었다.

     

  • 知之爲知之 不知爲不知 是知也
    • "아는 것을 안다고 하고 모르는 것을 모른다고 하는 것, 그것이 바로 앎이다"
    • 논어에 나오는 말씀이다.
    • 문제는 내가 뭘 모르는지조차 모를 때가 대부분이라는 것.
    • 뭘 모르는지조차 모르기에 개선의 필요도 느끼지 못하고 당연히 한치도 나아지지 않는다.
    • 2019년 파이콘 튜토리얼 목록을 보고 존재하는지조차 몰랐던 기능들을 볼 때까지 그랬다.
    • asyncio? decorator? TDD? 급하게 구글링을 해보고 나서야 내가 뭘 모르는지 조금이나마 알게 됐다.

     

  • 진지한 파이썬.
    • 이 책은 첫 챕터, 프로젝트 시작하기부터 진지하게 묻는다. "import는 할 줄 아세요?"
    • 구체적으로 말하면, "한 라인에 하나만 쓰고, import 한번에 하나만 가져오셔야 하는거 아세요?"
    • 그 다음 질문은, "문서 맨 위에 쓰되 주석과 docstring 다음에 쓰는거 아세요? 순서는 어떻게 놓는지 아세요?"
    • import는 파이썬을 몇 번만 사용해도 무조건 쓰는 명령.
    • 여기서 이렇게 답하기 어려운 질문을 받으면 그 뒤는 말할 것도 없다.
    • "시계는 볼 줄 아세요? 유럽 섬머타임에서 시간 바뀌는건요? 나라끼리 시차 문제는요?" - datetime
    • "데커레이터 쓰세요? 하나 쓸 때랑 여러개 쓸 때 어떻게 해야 하죠? 클래스에는요?" - decorator
    • 이 느낌을 알고 있다. 초년차 대학원생 시절 랩미팅때 교수님 앞에 서 있는 심정이다.
    • "죄송합니다. 더 알아보고 다시 답변드리겠습니다"

     

  • 다시 젓가락질
    • 젓가락질을 잘 못해도 밥을 잘 먹을 수는 있다.
    • 그러나 상견례나 식사면접처럼 밥 먹는 모습을 보이는 자체가 중요한 자리가 가끔 있다.
    • 코딩도 마찬가지. 고수의 코드에서 풍기는 아우라가 내 코드에 없을 수도 있다.
    • 그러나 내 코드의 생김새 자체가 부분적으로라도 평가를 받을 일이 반드시 생긴다.
    • 게다가 코드의 생김새는 생김새로 끝나지 않는다. 성능에 영향을 미친다.
    • "이거 돌리려면 보름은 필요한데" - 이러면 학회 발표는 물건너간다.

     

  • 아는 만큼 보이는 책, 모르면 해봐야 하는 책.
    • 챕터마다 파이썬의 다른 면모를 다룬다.
    • 내 경우 8장. 함수형 프로그래밍은 제법 익숙한 부분. 끄덕끄덕하면 페이지만 넘겨도 거의 된다.
    • 반면 5장. 개발한 소프트웨어 배포하기는 경험을 하지 못한 부분, 그러나 곧 해야 하는 부분이다.
    • 챕터마다 이해도가 천차만별이다.
    • 비교적 친절하다고 느껴지는 예제코드를 담고 있기 때문에 모르는 부분도 따라하면 되겠지 싶지만, 경험으로 알고 있다.
    • 안 따라하면 죽어도 모를 것이다.

     

  • 파이썬 초심자가 멋모르고 이 책을 집지 않기 바란다.
    • 내가 모르는 지점을 알게 되는 경험은 이성적으로는 통쾌해도 감정적으론 조금 쓴 맛이 난다.
    • 예제코드는 친절하지만 설명은 휙휙 넘어가는 경향이 없지 않다.
    • 자신감이 부족한 초심자 입장에서 이 책을 집으면 절망만이 가득해질 수도 있다.

     

  • 파이썬에 조금 자신이 붙었다고 느끼는 사람이 보면 좋겠다.
    • 아는 게 없어서 용감한 더닝-크루거 곡선의 초기 부분 말고,
    • 자신감의 바닥까지 갔다가 영차영차 올라오는 분들께 도움이 될 것 같다.
    • 이 분들에게는 한 장 한 장이 좋은 사다리가 될 수 있을 것 같다.
    • 내 경우 4장. 문서화, 5장. 소프트웨어 배포, 7장. 데커레이터는 즉시 투입 전력이 된다.
    • 일단 돌아가게는 만들 수 있기 때문에, 더 효율적으로 만들고 더 많은 분들께 검증을 받아야 하기 때문이다.

     

※ 한빛미디어 2021 도서 서평단 "나는 리뷰어다"의 일원으로 도서를 제공받아 작성한 리뷰입니다.