포스트

(Book Review) Flask Web Development

(Book Review) Flask Web Development

읽게 된 계기

웹을 통해서 애플리케이션을 만들어야 할 일이 있어서, 교보문고에서 Flask 책을 사서 공부하는데,

app_context, request 등 전혀 생소한 개념이 나오는데,
이에 대한 설명이 부족해서 책을 따라가는게 너무 너무 힘들었다

그래서 Flask에 대해서 제대로 설명한 책이 없는지 찾아 봤지만, 국내 서적 중에서는 찾을 수 없었다

어쩔 수 없이 amazon에서 검색해 보고, 이 책을 찾게 되었다

그래도 요즘엔 ebook으로 사면 배송비도 안 들고,
ebook 내에 번역 기능도 있고… 참 세상 좋아졌다는 생각이 든다

목차

I. Introduction to Flask

  1. Installation
  2. Basic Application Structure
  3. Templates
  4. Web Forms
  5. Databases
  6. Email
  7. Large Application Structure

II. Example: A Social Blogging Application

  1. User Authentication
  2. User Roles
  3. User Profiles
  4. Blog Posts
  5. Followers
  6. User Comments
  7. Application Programming Interfaces

III. The Last Mile

  1. Testing
  2. Performance
  3. Deployment
  4. Additional Resources

소감

Flask의 교과서이다

Flask를 이용해서 곧 바로 웹페이지를 만드는 것이 아니다
Flask와 client가 어떤 식으로 통신을 하는지에 대한 원리와 이를 위한 객체를 설명해준다
app context나 g, request, session 등의 객체가 왜 필요한지 설명해 주기 때문에 실습의 내용이 더 잘 이해가 된다

따라서 실습하다 보면 상용 수준의 웹 페이지를 제작하게 된다

git tag 1a부터 시작해서 코드에 살을 붙여 가며 하나 하나 commit 하다 보면
“이렇게 멋진 웹페이지를 내가 만들었다니?!!” 하고 감탄하게 된다
로컬 폴더에 git을 설치하고 각 commit 단계마다 tag를 붙여 가는게 좋다
이 책의 git page에 있는 tag와 동일하게 맛추는 것이 좋다
Flask github

RESTful API를 직접 구현해볼 수 있다

openstack이나 kubernetes 등을 실습하다 보면 RESTful API를 사용하게 되는데
그 개념이 와 닿지 않았다

RESTfull API의 개념에 대한 설명을 읽고 나서
Flask를 통해 직접 구현해 봄으로써, RESTfull API에 대해 더 잘 이해할 수 있게 되었다

어쩔 수 없는 라이브러리 버전의 불일치

대부분의 내용은 실습이 가능하나, 일부 라이브러리는 수정해서 써야 한다
책과 동일한 기준의 버전을 설치해 보려고도 했으나, 너무 old 해서 설치가 되지 않는다

특히 토큰을 발급하고 검증하는 절차는 완전히 바뀌었는데,
perplexity의 도움을 받아서 아래와 같이 해야 한다는 것을 알게 되었다

1
2
3
4
5
6
7
8
from itsdangerous import URLSafeTimedSerializer as Serializer

s = Serializer(app.config['SECRET_KEY'])

token = s.dumps({'confirm': 23})

// 토큰 검증  만료 시간 설정
data = s.loads(token, max_age=3600)

heroku가 free plan을 없애 버리는 바람에,
heroku를 통한 deploy 실습을 하지 못한 것이 아쉽다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.