이 가이드는 MOMO 프로젝트를 로컬 환경에서 실행하는 방법을 단계별로 설명합니다.
java -version # Java 17 확인
docker --version # Docker 확인
git --version # Git 확인
프로젝트 루트 디렉토리에 .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
프로젝트 루트 디렉토리에 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