goldenChat base source add

This commit is contained in:
aidev
2026-05-23 15:11:48 +09:00
commit a4ea7762b5
2081 changed files with 1155760 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
spring:
application:
name: goldenchart-backend
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: 110
# EMA 수렴을 위한 warm-up 목표치 (페이지네이션으로 달성)
# EMA(200) 완전 수렴: ~1150봉 필요. 여유분 포함 1500봉으로 설정.
# 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: 30
gap-backfill-cron: "0 */5 * * * *"
gap-backfill-candle-count: 20
cors:
allowed-origins:
- http://localhost:5173
- http://localhost:3000
- http://localhost:80
- http://localhost
# Firebase FCM (서비스 계정 JSON: classpath:firebase-service-account.json)
firebase:
enabled: ${FIREBASE_ENABLED:false}
service-account-file: ${FIREBASE_SERVICE_ACCOUNT:firebase-service-account.json}