q_table_demo/Makefile

90 lines
2.9 KiB
Makefile

# 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 "프론트엔드가 실행되지 않습니다."