1. 플라스크(Flask)란?
플라스크(Flask)란 파이썬을 기반으로 작성된 마이크로 웹 프레임워크(framework) 중 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다.
플라스크는 Docs를 읽으면 알 수 있지만, '단순한 업무는 단순해야 한다'라는 설계 원칙이 있다. 이런 원칙 덕분에 비교적 쉽게 이해하고 작성할 수 있다. 이런 측면 때문에 웹 개발 관련해서 가르칠 때도 많은 곳에서 플라스크를 가르치는 것 같다.
하지만 쉬운 만큼 단점도 있는데 그중 하나는 보안 부분에서 비교적 취약하다는 것이다. 플라스크와 그 안의 Jinja2 템플릿에도 당연히 보안을 위해 설계된 구조가 있지만, 때로는 오히려 그런 부분들이 보안 이슈를 일으키기도 한다는 것이다.
이제 막 공부하기 시작한 단계이기 때문에 아직 구체적인 원리나 이유는 모르지만, 플라스크의 Docs에서 그렇게 이야기하고 있고, 충분히 납득할 수 있다. 당연히 장점이 있다면 그만큼 단점도 있을 수 있으니까. 공부하면서 이런 특성과 장단점을 더 알고 깊게 이해할 수 있도록 노력해야 할 것이다. Docs 링크는 맨 아래에 남겼으니 나중에도 종종 확인할 수 있도록 해야겠다.
2. 웹 프레임워크(Web Framework)란?
간단하게 플라스크를 관통하는 핵심 개념인 웹 프레임워크에 대해 정리하면 이와 같다.
웹 프레임워크란 동적인 웹 페이지나 웹 애플리케이션 등을 개발할 때 발생하는 어려움을 줄여주는 일종의 '틀'이다. 통상적으로 데이터베이스 연동, 템플릿 형태의 표준, 세션 관리, 코드 재사용 등의 기능을 포함하고 있다.
파이썬을 기반으로 하는 웹 프레임워크는 Flask 외에도 Django, Bottle, Pyramid 등이 있는데, Django는 다량의 기능을 미리 제공하는 반면 Flask를 포함한 나머지는 기본적인 기능만 제공하고, 특별한 도구나 라이브러리가 필요 없기 때문에 '마이크로 웹 프레임워크'라고도 한다.
3. Flask Docs
영어: https://flask.palletsprojects.com/en/2.0.x/
한글: https://flask-docs-kr.readthedocs.io/ko/latest/index.html
'지극히 개인적인 공부 노트 > 토막 상식(Shorts)' 카테고리의 다른 글
[JavaScript] ES란?(Feat. ES6) (0) | 2022.04.25 |
---|---|
[UI/UX] UI/UX란? (0) | 2022.03.23 |
[Web] '웹서버'란? (0) | 2021.07.27 |
[AI] '인공지능'이란? (0) | 2021.07.23 |