Files
goldenChart/backend/src/main/resources/application.yml
T
2026-06-14 10:25:22 +09:00

133 lines
3.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
spring:
application:
name: goldenchart-backend
servlet:
multipart:
max-file-size: 6MB
max-request-size: 30MB
profiles:
active: ${SPRING_PROFILES_ACTIVE:local}
datasource:
url: ${DB_URL:jdbc:mysql://localhost:3306/stockAnalyzer?useSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8&allowPublicKeyRetrieval=true}
username: ${DB_USERNAME:stock}
password: ${DB_PASSWORD:analyzer}
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 20
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
jpa:
hibernate:
ddl-auto: validate
show-sql: false
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
format_sql: true
default_batch_fetch_size: 100
open-in-view: false
flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: true
baseline-version: 0
jackson:
serialization:
write-dates-as-timestamps: false
deserialization:
fail-on-unknown-properties: false
default-property-inclusion: non_null
time-zone: Asia/Seoul
server:
port: 8080
servlet:
context-path: /api
compression:
enabled: true
mime-types: application/json,application/javascript,text/css
# Upbit API
upbit:
api:
base-url: https://api.upbit.com
candle-limit: 1000
request-delay-ms: 200
# [항목4] warm-up 목표 봉 수 — 지표 계산 미스매치 방지
# 전략에서 사용하는 최대 Period(기간)의 최소 2~3배 이상으로 설정해야 한다.
# 예) 신고가(120봉), HMA(200), EMA(200) 사용 시 → 200×3 = 600봉 이상 필요
# EMA(200) 완전 수렴: ~1150봉 필요. 여유분 포함 1500봉으로 설정.
# Ta4jStorage.MAX_BAR_COUNT(1800) 이하여야 하며,
# 1500봉 = 200봉×8페이지 / 110ms 지연 = 구독당 약 880ms 추가 소요
warmup-count: 1500
websocket:
url: wss://api.upbit.com/websocket/v1
# Logging
logging:
level:
com.goldenchart: INFO
org.springframework.security: WARN
org.hibernate.SQL: WARN
pattern:
console: "%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
# GoldenChart settings
goldenchart:
secrets:
# 업비트 API 키 DB 암호화 (운영: GC_SECRETS_ENCRYPTION_KEY 환경변수 필수, 32자 이상 권장)
encryption-key: ${GC_SECRETS_ENCRYPTION_KEY:}
indicator:
warmup-bars: 200 # EMA/RMA 수렴을 위한 워밍업 기간
max-bars: 2000 # 최대 로드 캔들 수
trading:
pipeline:
enabled: true
queue-capacity: 65536
worker-threads: 6
order-rate-per-second: 5.0
max-bars-per-series: 500
stale-tick-seconds: 120
gap-backfill-cron: "0 */5 * * * *"
gap-backfill-candle-count: 20
trend-search:
scheduler:
enabled: true
tick-ms: 1000
queue-capacity: 16
verification:
upload-dir: ${GC_VERIFICATION_UPLOAD_DIR:data/verification-images}
max-image-size-mb: 5
max-images-per-issue: 30
mobile-app:
release-dir: ${GC_MOBILE_APP_RELEASE_DIR:data/mobile-releases}
version: ${GC_MOBILE_APP_VERSION:}
# QR·APK 다운로드 절대 URL (로컬 개발 시에도 exdev 서버 APK 사용)
public-base-url: ${GC_MOBILE_APP_PUBLIC_BASE_URL:http://exdev.co.kr}
desktop-app:
release-dir: ${GC_DESKTOP_APP_RELEASE_DIR:data/desktop-releases}
version: ${GC_DESKTOP_APP_VERSION:}
public-base-url: ${GC_DESKTOP_APP_PUBLIC_BASE_URL:http://exdev.co.kr}
cors:
allowed-origins:
- http://localhost:5173
- http://localhost:5174
- http://localhost:3000
- http://localhost:80
- http://localhost
- capacitor://localhost
- https://localhost
# Firebase FCM (서비스 계정 JSON: classpath:firebase-service-account.json)
firebase:
enabled: ${FIREBASE_ENABLED:false}
service-account-file: ${FIREBASE_SERVICE_ACCOUNT:firebase-service-account.json}