전체 아키텍처와 기술 선택

문서 목적

전체 시스템을 구성하는 Frontend, Backend, Data, AI/Ops, External 영역의 책임과 기술 선택 이유를 정리한다.

전체 아키텍처

전체 아키텍처

전체 아키텍처

영역별 책임

영역 구성 책임 구현 근거
Frontend React, Vite, TanStack Query, Recharts 대시보드, 포트폴리오, AI 뱅커, 백테스트 UI 사용자 화면과 시각화 계층
Backend FastAPI, async SQLAlchemy, APScheduler API, 스케줄러, 주문/분석 흐름 제어 API, scheduler, 주문/분석 orchestration
Data PostgreSQL, Alembic 포지션, 주문, 설정, 로그, 스냅샷 저장 운영 설정, 주문/포지션, 분석 로그, snapshot 저장
Search/RAG OpenSearch, kNN, BM25 뉴스 문서 저장, chunk 검색, source health 뉴스 문서 검색, chunk 검색, source health 관측
AI/Ops Gemini, OpenAI fallback, LangGraph AI 분석, provider fallback, reviewer 흐름 AI 분석, provider fallback, reviewer 흐름
External Upbit, Slack, RSS/News 거래소/운영 명령/시장 데이터 연동 거래소, Slack, RSS/News 연동

멀티 에이전트 구조

역할 책임 운영상 의미
Supervisor 사용자 요청 분류와 worker 흐름 제어 질문 의도를 단일 요청으로 처리하지 않고 역할별로 분기
RAG Worker 뉴스, 시장 문맥, RAG 검색 답변 근거가 되는 외부 컨텍스트 조회
Quant Worker 가격, 지표, 포트폴리오 상태 분석 시장/자산 상태를 판단에 반영
Reviewer 근거 부족, 과도한 확신, 주문 위험 검토 AI 판단이 바로 실행으로 이어지지 않게 차단

기술 선택 기준

선택 이유
FastAPI 비동기 API와 스케줄러/외부 API 호출을 함께 다루기 적합
PostgreSQL + Alembic 운영 상태와 이력을 migration 기반으로 추적
OpenSearch 뉴스 RAG에서 keyword/vector hybrid 검색과 상태 집계 가능
APScheduler 뉴스 수집, AI 분석, 스냅샷 저장을 반복 작업으로 관리
LangGraph AI 뱅커의 supervisor/worker/reviewer 흐름을 분리
SSE AI 활동 단계를 사용자가 실시간으로 볼 수 있게 구성

운영 기준

기준 설명
단일 화면보다 운영 콘솔 차트와 AI 답변만 보여주지 않고 warning, provider, RAG 상태를 함께 노출
단일 모델보다 provider router Gemini/OpenAI fallback과 blocked 상태를 관리
단일 주문보다 실행 경계 paper/live, shadow mode, live BUY lock으로 주문 실행을 분리
단일 결과보다 이력 analysis log, chat session, snapshot으로 나중에 다시 확인 가능

검증 근거

테스트 검증 내용
Provider fallback 검증 provider priority, blocked provider skip, fallback 후보
자동매매 안전 검증 AI 주문 실행 경계와 live BUY 기본 잠금
대시보드 복원력 검증 live 데이터 실패 시 snapshot fallback

<aside> 💡 이 문서가 설명하는 것: 전체 아키텍처와 기술 선택

</aside>

항목 내용
관련 운영 리스크 AI/주문/데이터 흐름이 섞이면 실패 지점 추적이 어려움
대표 구현 근거 FastAPI, PostgreSQL, OpenSearch, LangGraph, APScheduler
관련 테스트 provider router, executor safety, dashboard resilience