데이터가 스스로 깨끗해지는 시스템

3줄 요약

  • 시장 데이터를 수집하고, 계약(스키마)에 맞게 적재하고, 건강 게이트로 검증한 뒤에만 하류에 공급하는 파이프라인을 3개의 물리적으로 분리된 시스템으로 구축했다.
  • 매일 아침 수집→리서치→집행이 사람 개입 없이 연쇄 실행되며, 앞 단계가 불량이면 뒤 단계가 자동 차단된다 — 더러운 데이터는 아예 흐르지 못한다.
  • 실자본이 걸린 실행 계층은 fail-closed(불확실하면 멈춤)로 설계 — 리스크 게이트를 통과하지 못한 어떤 주문도 나가지 않는다.

1. 문제 — 데이터 시스템은 수집이 아니라 신뢰가 어렵다

자동매매·리서치 시스템을 만들며 확인한 것: 데이터를 모으는 코드는 하루면 짠다. 어려운 것은 그 다음 전부다.

  • 수집이 조용히 끊겨도 아무도 모른다 — 3주 뒤 백테스트가 구멍 난 데이터로 돌아간다.
  • 수집기와 분석기가 같은 폴더에 살면, 분석 코드가 원본 데이터를 “살짝 고치는” 순간부터 진실이 사라진다.
  • 연구 결과가 좋아 보여도, 그것이 실행돼도 되는 근거(데이터 품질·전략 검증)가 코드 어디에도 없다.

2. 설계 — 경계는 폴더가 아니라 계약으로 긋는다

시스템을 역할별로 3개의 독립 저장소로 물리 분리하고, 사이는 문서화된 계약으로만 잇는다.

[수집]  ──lake-schema 계약──▶  [연구]  ──strategy-artifact 계약──▶  [집행/관제]
canonical 데이터 레이크        팩터·백테스트                       3트랙 운용
읽기 전용 서빙                 검증된 아티팩트만 산출               리스크 게이트·fail-closed
  • 수집 계층: canonical 레이크를 유지하고 소비자에게 읽기 전용으로 서빙. 스키마 변경은 계약 문서(lake-schema) 경유 + 결재로만 — 하류가 모르는 컬럼 변경이 원천 봉쇄된다. Point-in-Time 원칙으로 “그 시점에 알 수 있었던 것”만 기록해 미래 정보 누출을 차단.
  • 연구 계층: 레이크를 소비해 전략 아티팩트를 만든다. 산출물은 자유 형식이 아니라 인터페이스 계약(strategy-artifact)을 충족하는 것만 실행 계층이 받는다.
  • 집행 계층: 관제탑이 페이퍼 2트랙 + 화이트리스트 실주문 1트랙을 운용. 모든 주문은 리스크 게이트 통과가 필수이고, 상태 머신 밖의 실행 로직은 금지. 출금 자동화·거래소 간 자금 이동은 설계 차원에서 존재하지 않는다.

3. 운영 — 매일 아침, 사람 없이

시각단계실패 시
09:00증분 수집 + 건강 게이트하류 전체 자동 차단
09:15리서치 사이클 — 가동 중 전략의 건강도 재평가, 신규 후보는 페이퍼로 성적 누적해당 전략 강등
09:253트랙 집행 (페이퍼 2 + 화이트리스트 실주문 1)fail-closed 정지

이 루프가 “자체 피드백으로 데이터와 전략이 정제되는” 구조다: 수집 품질이 게이트에서 걸러지고, 배포된 전략의 실측 건강도가 다음 날 리서치의 입력이 되고, 검증 안 된 것은 페이퍼 트랙에 격리된 채 성적만 쌓는다. 승격은 데이터가 결정하고, 정지는 시스템이 결정한다.

테스트는 집행 계층에만 221개 — 돈이 걸린 경로일수록 회귀 커버리지를 집중 배치했다. 전 파이프라인은 전용 서버에서 24/7 가동 중이다.

4. 결과 — 어디에 팔리는 역량인가

이 아키텍처는 트레이딩 전용이 아니다. “여러 소스에서 데이터를 모아, 믿을 수 있는 상태로 만들어, 업무에 자동 공급한다”는 문제는 재고·매출·마케팅 성과·연구 데이터 등 모든 도메인에서 동일하다.

  • 데이터 파이프라인 구축: 수집→계약 적재→품질 게이트→서빙의 표준 골격 이식
  • 레거시 데이터 정비: “시트는 많은데 믿을 수 없다”에 대한 실증 방법론 (→ 마케팅 대행사 A 케이스의 14,824행 이관·정규화와 동일 원리)
  • 미션 크리티컬 자동화: fail-closed·리스크 게이트·승인 체인 — 틀리면 돈이 나가는 시스템을 다뤄 본 설계 규율

방법론 박스 — 재사용되는 원칙

  1. 경계는 계약으로. 시스템 간 인터페이스는 폴더 구조가 아니라 문서화된 스키마 계약 + 변경 결재로 지킨다.
  2. 게이트가 흐름을 지배한다. 품질 검증을 통과하지 못한 데이터는 하류로 흐르지 못하게 — 알림이 아니라 차단.
  3. fail-closed. 돈이 걸린 시스템은 불확실할 때 멈추는 것이 정상 동작이다.
  4. 승격은 실측으로. 새 로직은 격리 트랙에서 성적을 쌓고, 승격 기준을 넘을 때만 실전에 들어간다.