[서평] 파이썬 웹 프로그래밍

By | 2018/09/03
파이썬 웹 프로그래밍

파이썬 웹 프로그래밍

Django는 현재 파이썬 웹 프레임워크중에서 가장 사랑받고 있는 프레임워크이다. 나는 한번도 Django를 써 본적은 없었지만 파이썬 웹 프레임워크 중에서는 Flask를 써서 간단한 연구 프로토타입용 웹개발을 한 경험이 있다. 갈수록 Django 커뮤니티가 커지고 Flask의 인기가 조금씩 밀리는 것이 느껴지고 있어서, 나도 Django를 한번 공부해봐야겠다고 생각하던 참에 이 책의 개정판을 보게 되었다. 사실, 2015년에 이 책의 초판이 갓 나왔을 때, 연구실 학부인턴으로 온 학생이 프로젝트 때문에 Django를 공부해야된다길래 이 책을 사 준 적이 있다. 이 책 보고 열심히 공부하고 나중에 내게 가르쳐달라고 했었는데, 어느덧 우리 연구실에 석사과정으로 입학하더니 나한테 Django를 가르쳐줄 틈도 없이 지난 달에 졸업하고 떠났다. 벌써 이 책의 초판이 나온지 2년이 넘게 흐른 셈이다. 그동안 Django 버전이 많이 올라간 탓에 개정판이 새로 나온 것 같다.

이 책은 한번도 Django 프레임워크를 써보지 않은 사람을 대상으로 하고 있다. 파이썬 문법에 대한 설명은 없으니 파이썬 문법 정도는 기본으로 알아야한다. 또한 HTML/CSS를 다룰 줄 알고, Apache나 Nginx등의 웹서버를 이용해서 간단한 정적 홈페이지를 만들어 본 경험이 필요하다. 딱 이정도 수준에서 동적 웹 개발을 해보고 싶은 사람들이 보기에 딱 좋은 수준을 다루고 있다. 만약 Spring이나 Flask같은 다른 웹 프레임워크를 다뤄 본 적이 있다면, 이 책으로 무리없이 Django에 입문할 수 있을 것 같다.

이 책의 초반부(1-2장)에서는 웹의 동작 원리 등을 설명하면서 Django 웹 프레임워크의 역할이 무엇인지 친절하게 설명한다. 특히, 2장에서는 파이썬 웹 표준 라이브러리부터 차근차근 설명한다. 여기가 가장 마음에 들었던 부분인데, Django 책이라고 다짜고짜 Django에 대해 설명하지 않고 파이썬 웹 프레임워크가 내부적으로 어떻게 동작을 하는지 기반 지식을 쌓을 수 있도록 저레벨 HTTP 관련 클래스들을 이용하여 아주 간단한 웹프레임워크를 직접 구현해본다. 학부시절에, 파이썬 웹 프레임워크를 만들기 위해 파이썬 웹 표준 라이브러리들을 공부하느라 끙끙 앓은 적이 있었기 때문이다. 이 부분을 모른다고 해서 당장 Django로 웹 개발을 하는데 지장이 있지는 않겠지만, 웹 프레임워크의 동작 원리를 깊이 이해하는데 꼭 필요한 부분이라고 생각한다.

중반부(3-6장)에서는 실제 Django를 사용 하는 방법에 대해 따라하기 튜토리얼 식으로 설명하고 있다. 책을 일던 중에, 상세 내용 참고하라고 적혀있는 URL에 접속해보고 안 사실인데, 이 책의 중반부의 내용이 Django 공식 홈페이지의 튜토리얼의 내용을 기반으로 하고 있다. 대신 공식 튜토리얼보다 훨씬 따라하기 쉽도록 어려운 부분은 제외하고 순서를 조금 바꿨다. 저자가 직접 튜토리얼 내용을 코딩하면서 세밀하게 각 단계별 스크린샷까지 추가하고 소스 코드에서도 주요 라인들을 하나하나 설명해주고 있어서, 처음 Django 입문자 입장에서는 내가 제대로 따라하고 있는게 맞는건지 의심할 필요없이 안심하며 따라갈 수 있었다. 또한, WSGI 표준 등 Django 공식 튜토리얼에는 나오지 않지만 Django를 잘 활용하기 위해 추가적으로 필요한 기반 지식 설명도 추가하여, 독자들의 이해를 돕기도 한다. 예전에 파이썬으로 웹 프레임워크를 개발하면서 WSGI가 뭔지도 몰라서 표준도 맞지 않는 엉망인 프레임워크를 만들었다가, 누군가가 WSGI 표준이라도 좀 맞추라는 지적을 하길래, 그게 뭔지 찾아보느라 헤멘 기억이 떠올라서 이 부분을 흥미있게 읽을 수 있었다.

후반부에(7-9)에서는 Django를 이용해서 개발한 간단한 웹사이트를 배포하는 방법에 대해 설명한다. PythonAnywhere라는 서비스를 사용 하는 방법, 또는 Apache나 Nginx 웹 서버와 연동하는 방법 등이다. 예전 Flask로 웹을 개발할 때도, 그냥 개발용 서버를 돌려놓고서 친구들한테 테스트해보라고 URL을 뿌렸다가 금방 서버가 죽길래 당황했던 경험이 있는 터라, 이런 간단하지만 모르면 큰일나는 웹 서버와의 연동 부분도 쉽게 설명하고 있다.

이 책은 부제에 충실하고 있다. Django로 배우는 "쉽고 빠른 웹 개발"을 위한 책이다. 개인적으로는 웹 프로그래밍 경험이 있다보니 Django 공식 튜토리얼 예제를 그대로 가져와서 설명하기보다는 조금 더 심화된 예제로 설명했다면 어떨까하는 아쉬움이 있지만, 웹에서 튜토리얼 문서를 보면서 따라하기에 익숙치 않은 초보에게는 이 책을 옆에 두고 따라하는게 훨씬 빠르게 배울 수 있을 것 같다. 이 책을 한번 보고 나서, 공식 튜토리얼 예제를 다시 보거나 장고걸스의 Django 문서를 보면 빠르게 머릿 속을 정리할 수 있을것이다. Django 입문을 원하는 분들께 [파이썬 웹 프로그래밍]을 적극 추천한다.

Django 입문을 위한 기타 참고자료:
- Django 장고걸스 튜토리얼 (한글): https://tutorial.djangogirls.org/ko/
- Django 장고걸스 심화 튜토리얼 (한글): https://tutorial-extensions.djangogirls.org/ko/
- Django 공식 튜토리얼 문서 (영문): https://docs.djangoproject.com/en/2.1/intro/
- Django 공식 튜토리얼 문서 (한글): https://docs.djangoproject.com/ko/2.1/intro/