피드로 돌아가기
The Day Our Bot Ran Out of Money
Dev.toDev.to
Backend

사후 DB 검증 한계 극복을 통한 Capital Check 로직 전면 배치

The Day Our Bot Ran Out of Money

Cartone2026년 5월 22일4beginner

Context

Grid Trading 전략 기반의 봇 시스템에서 자산 잔액 확인 없이 매수 로직을 실행하는 설계 결함 발생. DB Trigger를 통한 사후 검증 방식 채택으로 인해 실제 거래는 체결되었으나 기록은 누락되는 Data Inconsistency 문제 직면.

Technical Solution

  • Order Execution 전 단계에 Pre-trade Capital Check 로직을 도입하여 가용 자산 기반의 거래 실행 제어
  • In-memory 상태와 DB 상태의 불일치를 방지하기 위한 Transactional Integrity 강화
  • '잔액 부족 시 실행 불가'라는 명시적 가드 레일(Guard Rails)을 통한 시스템 안정성 확보
  • 단순 코드 동작(Code Works) 중심 설계에서 시스템 전체 흐름(System Works) 중심의 아키텍처로 전환
  • 보유 자산(Holdings) 확인 로직을 매도 단계에 추가하여 Short Selling 방지 구조 설계

1. 외부 API 호출(거래 체결 등) 전 단계에 필수 전제 조건(Pre-condition) 검증 로직이 포함되었는가?

2. Side Effect(알림 발송 등)가 데이터 영속성(Persistence) 확정 전에 실행되어 데이터 불일치를 유발하지 않는가?

3. 시스템의 Happy Path 외에 자원 고갈(Resource Exhaustion) 상황에 대한 예외 처리 설계가 되어 있는가?

원문 읽기