처음 목표는 RAG로 뉴스와 차트를 같이 읽어 주가 전망을 해보는 것이었다. 답은 나왔지만 그 답을 실제 투자 시스템에서 믿고 운영할 수 있느냐가 문제였다. 뉴스가 오래됐거나 임베딩이 실패했거나 포트폴리오를 잘못 읽어도 AI는 꽤 자연스러운 분석을 만들었다.
그래서 방향을 "AI가 종목을 추천한다"에서 "AI 판단을 운영 환경에서 추적하고 통제한다"로 바꿨다.
| 단계 | 한 일 | 운영 관점 |
|---|---|---|
| 거래 API 제어 | Upbit 조회, 잔고, 주문, 취소 흐름 구성 | 실제 돈이 움직이는 API를 다루는 최소 경계 |
| 서비스 구조화 | FastAPI, PostgreSQL, SQLAlchemy, Alembic | 상태 저장과 migration으로 추적 가능한 서비스화 |
| AI 분석 자동화 | APScheduler, AI 분석 API, 백테스트, RAG | 수동 분석이 아니라 반복 가능한 분석 흐름 |
| AI 운영 콘솔 | LangGraph AI 뱅커, Reviewer, SSE activity | AI 판단 과정과 중간 상태를 화면에 노출 |
| 운영 안정화 | live BUY 잠금, paper/live 분리, provider fallback | 실패를 숨기지 않고 잠그거나 경고 |
| 실주문 경계 재설계 (2026.07) | 자체 안전성 리뷰, 주문 멱등성, kill switch, fail-closed 모드, 청산 증명 | 사고가 안 난 이유를 설계로 설명할 수 있는 상태로 |
매수 기능보다 매수가 나가면 안 되는 조건을 먼저 설계했다. AI 답변 자체보다 사용한 데이터와 provider 상태, warning을 같이 표시하고, 주문과 포지션, AI 분석, 스냅샷, 채팅 세션은 DB에 남긴다.
백테스트와 스케줄러, 테스트로 같은 조건을 다시 확인할 수 있게 했고, 판정에 실패하면 정상값으로 보정하지 않고 멈춘다. 기본값은 항상 가장 안전한 쪽인 paper + inactive + BLOCK_ALL이다.
월별 진행은 AI Trade Manager 타임라인, 전체 흐름 요약은 개발 블로그에 있다.