package util import java.io.File import java.util.Properties object AppConfigManager { private val props = Properties() private val configFile = File("app.properties") // API 및 계좌 설정 var appKey: String by PropertyDelegate("app_key", "") var secretKey: String by PropertyDelegate("secret_key", "") var accountNo: String by PropertyDelegate("account_no", "") var isSimulation: Boolean by PropertyDelegate("is_simulation", "true") { it.toBoolean() } // AI 모델 설정 var modelPath: String by PropertyDelegate("model_path", "") init { if (configFile.exists()) configFile.inputStream().use { props.load(it) } } private fun save() = configFile.outputStream().use { props.store(it, "AutoTrade Config") } // 델리게이트 패턴으로 중복 코드 방지 class PropertyDelegate( private val key: String, private val default: String, private val parser: (String) -> T = { it as T } ) { operator fun getValue(thisRef: Any?, property: kotlin.reflect.KProperty<*>): T = parser(props.getProperty(key, default)) operator fun setValue(thisRef: Any?, property: kotlin.reflect.KProperty<*>, value: T) { props.setProperty(key, value.toString()) save() } } }