kjh2064
c56c9cc903
feat(kis): KIS API 클라이언트 .NET 포팅 완료
...
**구현:**
- IKisApiClient.cs: 완전한 read-only 메서드 인터페이스
- GetCurrentPriceAsync, GetAskingPrice10LevelAsync
- GetDailyShortSaleAsync, GetDailyItemChartPriceAsync
- GetInvestorTrendAsync
- KisApiClient.cs: 완전한 .NET 구현 (kis_api_client_v1.py 포팅)
- KisCredentials: 환경변수 + Windows 레지스트리 폴백
- ITokenCache 통합: PostgreSQL 기반 토큰 캐싱
- AssertReadOnly: 주문 API 차단 (governance/rules/06_no_direct_api_trading.yaml)
- HttpClient: 비동기 API 호출 + 헤더 관리
- 모든 quotation 조회 메서드 구현
**보안:**
- FORBIDDEN_PATH_SUBSTRINGS: "/trading/" 경로 차단
- FORBIDDEN_TR_ID_PREFIXES: TTTC/VTTC 주문 TR_ID 차단
- 매수/매도 API 절대 호출 불가 (2차 방어)
**DI 통합:**
- Program.cs: builder.Services.AddScoped<IKisApiClient, KisApiClient>();
- HttpClientFactory 패턴 활용
**다음 단계:**
- PostgresTokenCache 구현
- CollectionRepository PostgreSQL 구현
- Collection 엔드포인트 완성
- Web API 통합 테스트
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-06-29 23:15:40 +09:00
kjh2064
66f75d9014
feat(core): 데이터 수집 파이프라인 Core 인터페이스 추가 및 Makefile 생성
...
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 11s
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 8s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build & Deploy to Production (push) Successful in 1m25s
Snapshot Admin Deployment / build-and-deploy (push) Failing after 1m3s
**Stage 2 (Python → .NET) 진행:**
- ITokenCache.cs: KIS API 토큰 캐싱 추상화
- 기존 Python sqlite3 로직 → PostgreSQL 기반으로 마이그레이션
- GetCachedTokenAsync(), SaveTokenAsync(), ClearExpiredTokensAsync()
- IDataCollectionStore.cs: 데이터 수집 저장소 추상화 계약
- Python data_collection_store_v1.py 계약 매핑
- UpsertRun/Snapshot/Error, Fetch 메서드
- CollectionRunRecord, CollectionSnapshotRecord, CollectionErrorRecord DTO
- CollectionDashboardStateRecord 대시보드 상태 모델
- ICollectionRepository.cs: 웹 API용 데이터 수집 저장소 인터페이스
- 높은 수준의 추상화 (Dapper + PostgreSQL)
- SaveRun, UpdateRunStatus, SaveSnapshot, SaveError
- GetRecentRuns, GetRunSnapshots, GetRunErrors, GetDashboardState
- GetLatestSnapshotsForTicker
**Stage 3 (Node.js → .NET) 완료:**
- Makefile: npm scripts를 make 타겟으로 변환
- ops:prepare, ops:validate, ops:data-collect 등 주요 작업
- dotnet:build, dotnet:run, dotnet:watch 개발 명령어
- 단계: Python 도구 호출 유지 (Phase 2 완료까지)
**다음 단계:**
- CollectionRepository PostgreSQL 구현체 (Dapper)
- TokenCache PostgreSQL 구현체
- DataCollectionStore PostgreSQL 구현체 (필요시)
- Program.cs DI 등록
- Web API Collection 엔드포인트 추가
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-06-29 23:13:35 +09:00
kjh2064
8f13bb4a48
feat: postgres history-first 계약과 적재 경로 추가
...
- PostgreSQL history contract와 schema/validator를 추가했습니다.
- .NET history store, snapshot reader, repository, migration을 연결했습니다.
- history-first 운영 모델 문서와 daily signal tracking 문구를 정리했습니다.
2026-06-26 14:17:04 +09:00