Flask 시작하기: 파이썬용 경량 웹 프레임워크
Source: Dev.to
Flask란?
Flask는 파이썬으로 작성된 경량 웹 프레임워크입니다. 마이크로프레임워크라고 자주 불리는데, 이는 웹 애플리케이션을 만들기 위해 필요한 기본 요소만 제공하고 구조와 도구에 대한 선택은 개발자에게 맡기기 때문입니다.
핵심 기능
- 라우팅 – URL 및 엔드포인트
- HTTP 처리 – 요청 및 응답
- 템플릿 – Jinja2 통합
- 개발 서버 및 디버깅
다른 모든 기능은 필요할 때만 추가됩니다.
Flask를 선택해야 하는 이유
- 학습이 쉬움 – 최소 설정과 명확한 문법
- 유연함 – 강제 프로젝트 구조가 없음
- 경량 – 필요한 것만 설치
- 파이썬스러운 – 깔끔하고 가독성 높은 코드
- API에 최적 – RESTful 서비스에 이상적
Flask는 단순함과 유연성 덕분에 널리 채택되고 있으며, 데이터 과학자와 백엔드 개발자가 웹 개발을 시작할 때 흔히 선택하는 첫 단계입니다.
설치
Flask를 설치하기 전에 파이썬 가상 환경을 사용하는 것이 권장됩니다.
pip install flask
첫 번째 Flask 앱
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, Flask!"
if __name__ == "__main__":
app.run(debug=True)
앱 실행:
python app.py
브라우저에서 http://127.0.0.1:5000/ 로 이동합니다.
라우팅
라우팅은 URL을 파이썬 함수에 매핑합니다.
@app.route("/about")
def about():
return "About Page"
각 라우트는 특정 URL에 대한 애플리케이션의 응답 방식을 정의합니다.
REST API 구축
Flask는 REST API를 만드는 데 흔히 사용됩니다.
from flask import jsonify
@app.route("/api/status")
def status():
return jsonify({"status": "running"})
일반적인 사용 사례
- 머신러닝 추론 API
- 백엔드 서비스
- 마이크로서비스
Flask vs. Django (간단 비교)
| 항목 | Flask | Django |
|---|---|---|
| 범위 | 경량, 마이크로프레임워크 | 풀‑피처 프레임워크 |
| 유연성 | 매우 유연, 구조에 대한 강제성 없음 | 의견이 강하게 제시되며 많은 내장 컴포넌트 제공 |
| 설정 속도 | 빠른 설정 | 더 많은 설정 필요 |
| 적합한 경우 | API, 마이크로서비스, 프로토타입, ML 모델 서빙 | 복잡한 요구사항을 가진 대규모 애플리케이션 |
Flask는 제어권을 제공하고, Django는 구조를 제공합니다.
Flask를 사용해야 할 때
- 간단한 백엔드가 필요할 때.
- API 또는 마이크로서비스를 구축할 때.
- 아키텍처에 대한 완전한 제어를 원할 때.
- ML 모델이나 프로토타입을 서빙할 때.
대규모 애플리케이션을 위한 Flask 확장
- 가상 환경 사용 – 의존성 격리.
- 코드를 모듈화 (예:
app/__init__.py,app/routes.py). - 환경 변수로 설정 관리.
- 프로덕션에서는 디버그 모드 비활성화.
- Gunicorn, Docker 또는 기타 WSGI 서버와 함께 배포.
결론
Flask는 파이썬 웹 개발의 진입 장벽을 낮춥니다. 그 단순함은 초보자에게 완벽하고, 유연성은 프로덕션 시스템에서도 충분히 강력합니다. 모델을 배포하는 데이터 과학자이든 API를 구축하는 개발자이든, Flask는 마스터할 가치가 있는 도구입니다.