feat(collection): PostgreSQL 백킹 활성화 (CollectionRepository + TokenCache)
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 7s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 13s
Snapshot Admin Deployment / build-and-deploy (push) Failing after 1m21s
Deploy to Production / Build & Deploy to Production (push) Successful in 1m55s

- Program.cs: PlaceholderCollectionRepository/TokenCache/KisApiClient → 실제 구현체로 변경
- 데이터베이스 초기화: EnsureTablesAsync() 호출 (시작 시 테이블 자동 생성)
- kis_tokens, kis_collection_runs, kis_collection_snapshots, kis_collection_errors 테이블
- Dapper 기반 SQL 쿼리 (파라미터화, SQL 주입 방지)
- 인덱스: started_at, ticker, captured_at, run_id
- PlaceholderImplementations.cs 제거

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-29 23:32:29 +09:00
parent 4ef7a54ad5
commit 0b503c20af
262 changed files with 2880 additions and 168 deletions
@@ -0,0 +1,56 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"QuantEngine.Tools/1.0.0": {
"dependencies": {
"QuantEngine.Application": "1.0.0",
"QuantEngine.Core": "1.0.0"
},
"runtime": {
"QuantEngine.Tools.dll": {}
}
},
"QuantEngine.Application/1.0.0": {
"dependencies": {
"QuantEngine.Core": "1.0.0"
},
"runtime": {
"QuantEngine.Application.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"QuantEngine.Core/1.0.0": {
"runtime": {
"QuantEngine.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"QuantEngine.Tools/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"QuantEngine.Application/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"QuantEngine.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("QuantEngine.Tools")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4ef7a54ad55182e164ca78e8af21f2a5e214c98f")]
[assembly: System.Reflection.AssemblyProductAttribute("QuantEngine.Tools")]
[assembly: System.Reflection.AssemblyTitleAttribute("QuantEngine.Tools")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
e57c2999ae009bd4e7cb81bfa1a79df90657516cb1012e075af73cfb374083a4
@@ -0,0 +1,18 @@
is_global = true
build_property.TargetFramework = net10.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v10.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property.EntryPointFilePath =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = QuantEngine.Tools
build_property.ProjectDir = C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =
@@ -0,0 +1 @@
1d48ffb61bcb16ee26ff8dd1f8df5a43d62055c7e2eadff47940d76e842ce3a3
@@ -0,0 +1,20 @@
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Tools.exe
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Tools.deps.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Tools.runtimeconfig.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Tools.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Tools.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Application.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Core.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Core.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\bin\Debug\net10.0\QuantEngine.Application.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.csproj.AssemblyReference.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.GeneratedMSBuildEditorConfig.editorconfig
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.AssemblyInfoInputs.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.AssemblyInfo.cs
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.csproj.CoreCompileInputs.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEng.78F9363A.Up2Date
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\refint\QuantEngine.Tools.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\QuantEngine.Tools.genruntimeconfig.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Tools\obj\Debug\net10.0\ref\QuantEngine.Tools.dll
@@ -0,0 +1 @@
7ce6c2c1059f99fce2c9e50837963ea8e7cf9093ec7e5cd84e46dc9429038c60