====== app.py: Flask API 서버의 중심 ====== ''app.py''는 **Dream of E&C 백엔드**의 심장과 같은 파일로, Flask 애플리케이션을 생성하고 모든 구성 요소를 연결하는 역할을 수행합니다. === 주요 기능 === * **Flask 앱 초기화**: ''Flask(__name__)''을 통해 웹 애플리케이션 인스턴스를 생성합니다. * **데이터베이스 설정**: SQLAlchemy ORM을 사용하여 SQLite 데이터베이스(''site.db'')를 연동하고, 모델과 앱을 연결합니다. * **CORS 정책 설정**: ''flask_cors''를 사용하여 지정된 프론트엔드 도메인(''dreamofenc.com'', ''syjang0803.github.io'')에서의 API 요청만 허용하도록 보안 정책을 설정합니다. * **블루프린트 등록**: ''views'' 디렉터리에 정의된 각 API 모듈(블로그, 게임, HR)을 ''app.register_blueprint()''를 통해 메인 애플리케이션에 등록하여 기능을 확장합니다. * **루트 엔드포인트**: 서버의 루트 주소(''/'')로 접속 시, API 서버의 상태와 사용 가능한 엔드포인트 목록을 JSON 형식으로 반환합니다. === 코드 구조 === # ... (라이브러리 임포트) ... # 데이터베이스 객체 생성 db = SQLAlchemy() # 블루프린트 임포트 from views.game_api import game_bp from views.hr_api import hr_bp from views.blog_api import blog_bp # Flask 앱 생성 및 설정 app = Flask(__name__, ...) app.config['SQLALCHEMY_DATABASE_URI'] = '...' db.init_app(app) # CORS 설정 CORS(app, resources={...}) # 모델 임포트 from models import Post, Comment, ... # 블루프린트 등록 app.register_blueprint(game_bp) app.register_blueprint(hr_bp) app.register_blueprint(blog_bp) # 루트 경로 핸들러 @app.route('/') def api_root(): # ... (서버 정보 반환) ... # 개발 서버 실행 if __name__ == '__main__': app.run(...) 이 파일을 통해 전체 API 서버가 어떻게 구성되고 시작되는지 파악할 수 있습니다. 각 기능별 세부 구현은 등록된 블루프린트 파일(예: ''views/blog_api.py'')에서 확인할 수 있습니다.