처음 배우는 플라스크 웹 프로그래밍

한빛미디어에서 제공받는 책으로 해당 리뷰를 작성하였습니다.

책표지!

TL;DR

  • 초급자(AWS RDS 사용이 힘든 학습자) 라면 이 책의 CHAPTER 1 플라스크 시작하기을 읽고, 아래 몇가지 튜토리얼을 진행하고 CHAPTER 4 플라스크 블로그 만들기를 차근 차근 진행해보자(개인적으로 난이도가 CHAPTER 3 플라스크로 영화 예매 사이트 만들기가 더 높은 듯 함)
  • 중급자(AWS RDS 사용이 가능한 학습자) 라면 이 책의 CHAPTER 3 플라스크로 영화 예매 사이트 만들기을 먼저 시작해도 무방할 듯 하다.
    • 중급자의 경우 CHAPTER 1 플라스크 시작하기CHAPTER 2 플라스크로 애플리케이션 만들기는 필요할 때 읽어도 무방함

0 - Flask?

Node.jsExpress가 있다면 PythonFlask가 있고, JavaSpring이 있다면 우리에겐 Django가 있다.

한때, 내가 가장 많이 사용했던 웹 프레임워크 중 하나가 Flask였다. 왜 ‘한때’라는 부사가 붙느냐면 2017년 이후에 내가 진행했던 외부 프로젝트가 추천시스템 구축 관련이었는데, 해당 프로젝트 책임자’들’이 Django를 요구했기 때문이다. 마치 약속이나 한 것 처럼 대부분의 프로젝트 책임자들이 Django에 대해서 요구하기 때문인데, 요즘은 많은 프로젝트에서 Flask를 기반으로 한 API 서버를 요청하는 경우가 많아졌다. 개인적인 견해를 기반으로 부연 설명을 조금해보자면, Django를 사용해서 API 서버를 구성하는 것이 조금 번거로운 점이 있고, 머신러닝/딥러닝 모델을 기반으로 한 API 서버의 경우 풀스택 프레임워크를 사용할만큼 큰 규모가 아니라는 점 때문이라 생각한다.

한 마디로 말해서 간단한 API를 구성한다면 Flask만한 프레임워크가 없습니다.

1

이 책을 읽고, 모든 예제를 진행하면서 가장 마음에 들었던 점이라면 ‘프로젝트 기반’으로 진행된다는 점이다. 그래서 1~2장 정도를 가볍게 읽고, 3/4/5장 중에서 마음에 드는 주제를 골라서 진행해도 된다는 점이다. 나는 책을 순서대로 진행했는데, 3/4/5장의 프로젝트가 난이도가 중/하/상 수준으로 판단된다. 그래서 플라스크를 처음 접하는 분들은 4장을 목표로 진행하면 좋을 듯 싶다.

RDS를 적극적으로 활용하고 있고, 특정 부분에서 리액티브 프로그래밍 등과 같은 초급 학습자가 학습하기엔 약간 난이도가 있는 부분은 가볍게 넘어가도 좋을 듯 싶다. 저자의 GitHub에 대부분의 코드를 제공하기 때문에 RDS 부분을 SQLite3로 변경하기만 해도 별다른 어려움 없이 예제를 진행할 수 있다.

마지막으로 배포 부분은 도커를 사용하고 있기 때문에, 프로젝트를 진행하고 끝나는 것이 아니라 서버에 직접 배포할 수 있는 경험을 제공한다는 점에서 다른 여타의 책과 확실하게 차이점을 두고 있으며, 이러한 차이점은 초중급 학습자에게 큰 장점이다.

만약, 플라스크에 대한 경험이 없다면 이 교재의 1장과 2장을 먼저 읽고, 웹에서 간단한 플라스크 튜토리얼을 1~2개 정도 진행 후에 4장을 진행해보길 권한다. 그리고 도커 사용이 힘들다면 heroku 등을 사용해서 무료로 배포를 진행할 수 있으니 도전해보면 좋을 듯 싶다.

책내용

2

현재 이 책에서 다루는 내용은 초급자분들이 접근하기엔 약간의 어려움이 따른다. 대표적인 것들이 RDS를 사용한다는 점인데, 초급 사용자가 RDS에 접근한다는게 쉽지 않을 것으로 판단되기 때문이다. MySQL 등을 설치하는 것도 초급자에게 쉽지 않기 때문에 될 수 있으면 SQLite3를 사용하는 방법을 권하고 싶다. 그리고 도커 등과 같은 소프트웨어를 설치하는 문제가 발생하는 경우에는 heroku 등과 같은 다른 무료 서비스를 최대한 활용할 수 있도록 별도의 가이드를 작성해서 배포한다면 좋을 듯 싶다. 그리고 해당 교재는 파이썬의 문법에 대해서 자세한 설명을 하고 있지 않기 때문에 파이썬 문법은 별도의 교재로 학습하고 진행하길 권한다.

파이썬코드

3

완전 초보자에게 조금 어려울 수 있지만, 개발 환경 구성에서 배포까지 전 과정을 제시하는 교재가 흔하지 않기 때문에 초급자는 약간의 도전과제라 생각하고 진행하면 좋은 성과를 이룰 수 있고, 중급자는 폴더 구조, 환경설정, 3rd-party 라이브러리 그리고 도커 등과 같은 다양한 기술을 사용해볼 수 있는 좋은 기회가 될 것이다.

Written on September 20, 2021