# Q-Table 협상 전략 데모 Makefile .PHONY: help install run-api run-frontend run-both test clean docker-build docker-run help: ## 도움말 표시 @echo "사용 가능한 명령어:" @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) install: ## 의존성 설치 @echo "🔧 의존성을 설치합니다..." @if command -v poetry >/dev/null 2>&1; then \ poetry install; \ else \ pip install -r requirements.txt; \ fi run-api: ## API 서버 실행 @echo "🚀 API 서버를 시작합니다..." python run_api.py run-frontend: ## 프론트엔드 실행 @echo "🎯 프론트엔드를 시작합니다..." python run_frontend.py run-both: ## API와 프론트엔드 동시 실행 @echo "🚀 전체 시스템을 시작합니다..." python run_both.py test: ## 테스트 실행 @echo "🧪 테스트를 실행합니다..." @if command -v poetry >/dev/null 2>&1; then \ poetry run pytest tests/ -v; \ else \ pytest tests/ -v; \ fi clean: ## 캐시 및 임시 파일 정리 @echo "🧹 정리 작업을 수행합니다..." find . -type f -name "*.pyc" -delete find . -type d -name "__pycache__" -delete find . -type d -name ".pytest_cache" -exec rm -rf {} + find . -type d -name "*.egg-info" -exec rm -rf {} + docker-build: ## Docker 이미지 빌드 @echo "🐳 Docker 이미지를 빌드합니다..." docker-compose build docker-run: ## Docker로 실행 @echo "🐳 Docker로 시스템을 시작합니다..." docker-compose up docker-stop: ## Docker 컨테이너 중지 @echo "🛑 Docker 컨테이너를 중지합니다..." docker-compose down format: ## 코드 포맷팅 @echo "✨ 코드를 포맷팅합니다..." @if command -v poetry >/dev/null 2>&1; then \ poetry run black app/ frontend/ tests/; \ else \ black app/ frontend/ tests/; \ fi lint: ## 코드 린팅 @echo "🔍 코드를 검사합니다..." @if command -v poetry >/dev/null 2>&1; then \ poetry run flake8 app/ frontend/ tests/; \ else \ flake8 app/ frontend/ tests/; \ fi setup-dev: ## 개발 환경 설정 @echo "🔧 개발 환경을 설정합니다..." cp .env.example .env @echo "✅ .env 파일이 생성되었습니다. 필요에 따라 수정해주세요." demo: ## 데모 데이터 생성 @echo "🎲 데모 데이터를 생성합니다..." @echo "API 서버가 실행 중이어야 합니다." curl -X POST "http://localhost:8000/api/v1/episodes/generate" \ -H "Content-Type: application/json" \ -d '{"num_episodes": 10, "max_steps": 8, "anchor_price": 100, "exploration_rate": 0.4}' status: ## 시스템 상태 확인 @echo "📊 시스템 상태를 확인합니다..." @echo "API 서버 상태:" @curl -s http://localhost:8000/api/v1/health || echo "API 서버가 실행되지 않습니다." @echo "\n프론트엔드 상태:" @curl -s http://localhost:8501 >/dev/null && echo "프론트엔드가 실행 중입니다." || echo "프론트엔드가 실행되지 않습니다."