Flask, 너는 누구냐?

2019. 3. 6. 02:00Python/flask

Flask, 너는 누구냐?


여러분은 웹 서버 개발하면 무슨 프레임워크가 생각나는가? Spring, PHP (아참, 이 친구는 스크립트 언어다.), 요즘 핫하다는 Node.jsDjango 등등이 생각 날 것이다. 특히 Python으로 서버를 개발 하고자 한다면, Django와 Flask로 갈리게 될 텐데, 대부분의 사람들은 Django를 선택한다. 대형 웹 어플리케이션을 개발하기 위해서 가지고 있는 유용한 것들을 다 가지고 있기 때문이다. 하지만, 만약 당신이 만들려는 것이 아주 간단한, 10개 미만으로 이루어진 페이지라면? 아주 간단한 API 서버라면? 그렇다면 당신은 Flask라는 모종삽를 선택 하지 않을 이유가 없다. 당신은 화단에 꽃을 심기위해 Django 라는 삽을 쓸 필요는 없기 때문이다.





(그래도 이 친구, 복잡한 거 만들때는 최고야)





FlaskMicro Web Server Framework이다. 이름에서도 알 수 있듯이 최소한의 것들을 만들기 위해서 만들어진 프레임워크이다. Flask의 가장 큰 장점은 간단한 서버를 운영하는데 .py 파일 단 한개면 충분하다. 여러가지 세팅 같은거 필요 없다. 당신이 Hello, World 라고 적혀있는 페이지를 만드는데에는 몇 줄의 코드면 충분하다.


1
2
3
4
5
6
7
8
9
from flask import Flask  # Flask 모듈 삽입
app = Flask(__name__)  # Flask 인스턴스 생성
 
@app.route('/')  # route 데코레이터 사용, 어떤 URL이 우리가 작성한 함수를 실행 시키는지 알림
def hello_world():
    return 'Hello World!'
 
if __name__ == '__main__':
    app.run()  # 서버 실행
cs


(장난 아니라니깐)




또한, 기능이 간단하다 보니, 공식 문서도 그리 많은 양을 차지 하지 않는다. 즉, 러닝 커브가 그렇게 크지 않다는 것이다. Overview 문서만 보고, 막히는 게 있으면 공식 문서에서 찾아서 쓰면 된다. 물론 영어인게 불편 하겠지만, 그래도 할 만한 영어 수준일 것이다. Django와 비교를 해보자면, Django는 우리가 알아야 할 것들이 많다. Model의 개념, View 함수, Form Class, DB Migration 등등... 알아야 할 것들이 많지만(그 만큼 지원해 주는 기능이 매우 많긴하다.) 정말 간단하게 Python으로 서버를 운영할 일이 생긴다면 꼭 한 번쯤 써보라고 권하고 싶다.



http://flask.pocoo.org/docs/1.0/quickstart/



실제로 필자는 Overview만 보고, 간단한 API 서버를 만들었었다. 물론 DB 연동은 mysql 모듈을 가져와서 해야 하는 것이 상당히 귀찮은 일이었지만.. 프로젝트 구조도 간단하다. template 파일들은 templates 폴더에, static 파일들은 static 폴더에 올리면 끝이기 때문이다.



(와! 간단해!)



그리고, 다양한 Extension을 지원한다. API Server 개발, 웹 소켓 구현, OAuth 구현 등등을 이 Extension들로 빠르게 구현 할 수 있다. 실제로 필자는 Flask-RESTPlus Extension을 이용하여 RESTFul API Server를 손 쉽게 구현 할 수 있었다.



http://flask.pocoo.org/extensions/



여기서 유의할 점이 있다면, 이 Extension 들 중에서 프로젝트가 중지 되어 있는 경우가 있으니 Extension의 GitHub는 꾸준히 확인 하길 바란다.


(매우매우매우매우) 부끄럽지만, 필자가 Flask를 간단하게 공부 하면서 정리한 Repository가 있다. 한 번 참고해 보는 것도 나쁘지 않을 것 같다.



https://github.com/JustKode/Flask_Practice



Django가 삽이라면, Flask는 모종삽이다. 가끔은 모종삽을 써야 편할때도 있는 법, 프로젝트 구조도 매우 단순하다. (물론 단순한 만큼 너무 자유롭다는게 문제지만) 


Flask, 하지 않겠는가?


하지 않겠는가에 대한 이미지 검색결과



'Python > flask' 카테고리의 다른 글

[Flask를 알아 보자] 1. Flask란?, Flask 설치 방법  (0) 2019.09.07