✅ Flask란 무엇인가 ?!
핵심만 말하자면 간단한 웹 사이트 또는 간단한 API 서버를 만드는 데 특화되어 있는 Python (Micro) Web Framework이다.
클라우드 컴퓨팅의 발달로 Docker, K8s 와 접목해 소규모 컨테이너 단위로 기능 별 개발을 한 뒤, 한꺼번에 배포하는 방식 혹은 배포 후 기능을 추가하는 식으로 사용하고 있다.
✅ Micro Web Framework 란 ?
- Micro : 가벼운 기능, 쉽게 배우고, 가볍게 사용할 수 있으며 확장성이 높다.
- Framework : 라이브러리 그 이상의 의미로 어플리케이션의 핵심이 되는 기술이라고 보면 된다.
✅ Flask도 MVP 패턴을 가진다.
Flask도 MVC 패턴을 따른다. 웬만한 Web Framework들은 모두 MVC 패턴을 따른다.
MVC는 각각 Model, View, Controller를 나타낸다.
사용자가 웹 애플리케이션을 이용하기 위해 URL 요청을 하면, 해당 요청은 Controller에 들어오게 된다.
Controller은 해당 요청을 담당하는 메소드로 안내하고, 요청에 포함된 정보를 가지고 Model에 접근할 수 있다.
Model은 데이터베이스같은 비즈니스 로직을 처리하는 일을 수행하고 Controller로 다시 돌아온다.
Controller의 처리가 끝났다면 그 결과를 사용자들이 화면을 통해 볼 수 있도록 View로 이동시켜준다.
✅ Flask의 장단점
장점 | 단점 |
가볍게 배울 수 있다! (Python, HTML + CSS + Javascript만 할 줄 알면 금방 배운다!) 가볍게 사용 할 수 있다! (코드 몇 줄이면 금방 만든다!) 가볍게 배포 할 수 있다! (virtualenv에 Flask 깔고 바로 배포 하면 됨!) |
Django 에 비해서 자유도는 높으나, 제공해 주는 기능이 덜 하다. 복잡한 어플리케이션을 만들려고 할 때 해야 할 것들이 많다. |
✅ Flask 예제 실습
GCP 에서 VM 인스턴스로 실습하였다.
1. GCE 리눅스 서버에 접속 후 python3-pip 패키지를 설치한다. (Debian 계열 리눅스이다)
sudo apt update
sudo apt install python3-pip
2. 접근한 Linux에서 Flask를 설치한다.
pip3 install Flask
pip3 freeze requirements.txt
3. Flask app 파일을 설정한다.
cat <<EOF > app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello, GCE!"
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=5000)
EOF
위와 같이 입력하고 ls -al 명령어를 입력하면 app.py이 생성된 것을 확인할 수 있다.
4. Flask app 실행
python3 app.py
나는 GCE를 사용하였기 때문에 GCE의 Public IP에 접속하였다.
결과가 잘 나오는 것을 확인할 수 있다.
참고
'Study > Study' 카테고리의 다른 글
JumpHost (특정 서버를 경유해 SSH 사용하기) (0) | 2022.04.05 |
---|---|
Prometheus란 ? (0) | 2022.03.23 |
Serverless 란? (Server + Less) (0) | 2022.03.23 |
SELinux가 MariaDB를 안전한 방식으로 실행하는 방법 (0) | 2022.03.20 |
WSL (Windows Subsystem for Linux) 이란 ? (0) | 2022.03.12 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!