이 가이드는 MOMO 프로젝트를 로컬 환경에서 실행하는 방법을 단계별로 설명합니다.

📋 사전 요구사항

1. 필수 설치 프로그램

2. 버전 확인

java -version    # Java 17 확인
docker --version # Docker 확인
git --version    # Git 확인

📦 프로젝트 클론 및 설정

1. 프로젝트 클론

2. 환경변수 설정

프로젝트 루트 디렉토리에 .env 파일을 생성하고 다음 내용을 추가하세요:

# ===========================================
# 데이터베이스 설정 (로컬 MySQL)
# ===========================================
DB_URL=jdbc:mysql://localhost:3306/momo_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul
DB_USERNAME=root
DB_PASSWORD=your_mysql_password

# ===========================================
# Redis 설정
# ===========================================
REDIS_HOST=localhost
REDIS_PORT=6379

# ===========================================
# RabbitMQ 설정
# ===========================================
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=admin
RABBITMQ_PASS=admin123

# ===========================================
# Elasticsearch 설정
# ===========================================
ELASTICSEARCH_HOST=localhost
ELASTICSEARCH_PORT=9200

# ===========================================
# 모니터링 설정
# ===========================================
OTEL_COLLECTOR_ENDPOINT=http://localhost:4317

# ===========================================
# 외부 서비스 (테스트용 더미 값)
# ===========================================
TOSS_SECRET_KEY=test_sk_dummy_key
TOSS_CLIENT_KEY=test_ck_dummy_key
TOSS_BASE_URL=https://api.tosspayments.com/v1

# Firebase 설정 (테스트용 - 실제 사용시 Firebase 콘솔에서 발급받은 키 사용)
FIREBASE_CREDENTIALS={"type":"service_account","project_id":"test","private_key_id":"test","private_key":"test","client_email":"test@test.iam.gserviceaccount.com","client_id":"test","auth_uri":"<https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token>"}

# WebClient 내부 통신용
WEBCLIENT_SECRET_KEY=local-dev-secret-key-for-testing
WEBCLIENT_BASE_URL=http://localhost:8080

# Slack 알림 (선택사항)
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK

3. Gradle 환경변수 설정

프로젝트 루트 디렉토리에 gradle.properties 파일을 생성하고 다음 내용을 추가하세요:

# Flyway 설정 (로컬 개발용)
flyway.url=jdbc:mysql://localhost:3306/momo_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul
flyway.user=root
flyway.password=your_mysql_password

🐳 인프라 서비스 실행

1. Docker Compose로 필수 서비스 실행