====== Flask: Python 웹 프레임워크 ====== **Flask**는 Python으로 작성된 마이크로 웹 프레임워크입니다. 간단하고 유연한 구조로 빠른 웹 애플리케이션 개발이 가능하며, Dream of E&C 프로젝트의 백엔드 API 서버로 사용됩니다. ==== 주요 특징 ==== **핵심 장점**: * **가볍고 간단**: 핵심 기능만 제공하여 빠른 시작 가능 * **확장 가능**: 필요한 기능을 플러그인으로 추가 * **유연성**: 개발자가 원하는 방식으로 구조 설계 가능 **주요 기능**: * **라우팅**: URL 경로와 함수를 연결 * **템플릿**: Jinja2 템플릿 엔진 내장 * **세션 관리**: 사용자 세션 및 쿠키 처리 * **요청 처리**: HTTP 요청/응답 처리 ==== Dream of E&C 프로젝트에서의 활용 ==== **주요 역할**: * **REST API 서버**: 프론트엔드와 데이터 통신 * **데이터베이스 연동**: SQLAlchemy를 통한 DB 조작 * **사용자 인증**: 로그인/로그아웃 기능 ==== 마이크로 프레임워크 ==== * **가볍고 간단**: 핵심 기능만 제공하여 빠른 시작 가능 * **확장 가능**: 필요한 기능을 플러그인으로 추가 * **유연성**: 개발자가 원하는 방식으로 구조 설계 가능 ==== 주요 기능 ==== * **라우팅**: URL 경로와 함수를 연결 * **템플릿**: Jinja2 템플릿 엔진 내장 * **세션 관리**: 사용자 세션 및 쿠키 처리 * **요청 처리**: HTTP 요청/응답 처리 ---- === 💼 실무 활용 사례 === ==== Dream of E&C 프로젝트에서의 역할 ==== * **REST API 서버**: 프론트엔드와 데이터 통신 * **데이터베이스 연동**: SQLAlchemy를 통한 DB 조작 * **사용자 인증**: 로그인/로그아웃 기능 * **파일 업로드**: 이미지 및 문서 파일 처리 ==== 기본 코드 예시 ==== from flask import Flask, jsonify, request app = Flask(__name__) @app.route('/api/users', methods=['GET']) def get_users(): # 사용자 목록 조회 return jsonify({'users': users}) @app.route('/api/users', methods=['POST']) def create_user(): # 새 사용자 생성 data = request.get_json() return jsonify({'message': 'User created'}) if __name__ == '__main__': app.run(debug=True) ---- === 🔧 관련 기술 === * **[[wiki:glossary:server_operations:waitress|Waitress]]**: 프로덕션 환경에서 Flask 앱 실행 * **[[wiki:glossary:web_technologies:nginx|Nginx]]**: 리버스 프록시로 Flask와 연동 * **[[wiki:glossary:server_operations:linux|Linux]]**: 서버 운영 환경 * **SQLAlchemy**: 데이터베이스 ORM ---- === 📚 학습 자료 === ==== 공식 문서 ==== * [[https://flask.palletsprojects.com/|Flask 공식 문서]] * [[https://flask.palletsprojects.com/en/2.3.x/quickstart/|빠른 시작 가이드]] ==== 실무 팁 ==== * **개발 모드**: `app.run(debug=True)`로 자동 재시작 * **환경 변수**: `FLASK_ENV=development` 설정 * **블루프린트**: 대규모 앱을 모듈로 분리 * **에러 핸들링**: `@app.errorhandler()` 데코레이터 활용 //''Python으로 웹 개발을 시작하기에 최적의 프레임워크입니다.''//