자동매매 화면에서 왜 주문 잠금이 필요했을까?
KIS APIAIRisk Control
문제 상황
KIS AI 트레이더는 단순히 매수 후보를 보여주는 화면이 아니라 시장 데이터, 뉴스, 모의투자 결과, AI 판단 근거, 리스크 조건을 함께 보여줘야 하는 프로젝트였습니다.
주식 서비스는 데이터가 계속 바뀌고, 잘못된 버튼 하나가 실제 주문으로 이어질 수 있기 때문에 일반 웹 프로젝트보다 안전 장치가 더 중요했습니다.
특히 포트폴리오로 공개할 때는 화면은 보여주되 관리자 설정, 실계좌 정보, 실제 주문 기능은 노출하지 않아야 했습니다.
해결 방법
대시보드를 읽기 전용 모드로 분리했습니다.
읽기 전용 화면에서는 다음 정보만 보여주도록 구성했습니다.
반대로 다음 기능은 읽기 전용 화면에서 제외하거나 잠갔습니다.
서버에서는 오라클에서 Python 기반 대시보드 서비스를 실행하고, Caddy가 도메인으로 프록시하도록 구성했습니다.
juyoung-quant.duckdns.org
-> Caddy
-> Python 대시보드 서비스
-> 로그, 모델 결과, 모의투자 상태 파일 조회
-> 읽기 전용 UI 렌더링
배운 점
자동매매 프로젝트는 매수 로직보다 위험 제어가 먼저였습니다.
사용자가 AI 판단을 신뢰하려면 단순히 결과만 보여주면 안 되고, 왜 기다리는지, 어떤 조건이 막고 있는지, 어떤 데이터가 연결되어 있는지 설명해야 합니다.
또한 금융 서비스 성격의 프로젝트는 포트폴리오에 올릴 때도 공개 가능한 화면과 숨겨야 할 화면을 분리해야 한다는 점을 배웠습니다. 기능을 많이 보여주는 것보다 안전하게 보여주는 것이 더 중요했습니다.