6.8 KiB
Galaxis-Po 배포 테스트 리포트
테스트 일시: 2026-05-09 (토)
테스트 URL: https://galaxis.ayuriel.duckdns.org
테스터: Claude (Cowork)
전체 결과 요약
| 페이지 / 기능 | 상태 | 비고 |
|---|---|---|
| 로그인 / 인증 | ✅ 정상 | |
| 대시보드 | ✅ 정상 | |
| 포트폴리오 목록 | ✅ 정상 | |
| 포트폴리오 상세 (보유종목·거래내역·분석) | ✅ 정상 | |
| 전략 목록 | ✅ 정상 | |
| KJB 전략 실행 (종목 랭킹) | ✅ 정상 | |
| 매매 신호 (오늘) | ✅ 정상 | 주말이라 신호 0건 — 정상 |
| 매매 신호 이력 | ✅ 정상 | |
| 백테스트 실행 | ❌ 실패 | No trading days found |
데이터 수집 관리 (/admin/data) |
✅ 정상 | |
| 데이터 탐색 차트 | ❌ 실패 | 런타임 에러 |
✅ 정상 동작 상세
대시보드
- 총 자산: ₩78,627,545
- 총 수익률: +32.3% (+₩19,203,619)
- 활성 포트폴리오: 3개
- 보유 중인 종목: 5개
- 자산 배분 도넛 차트 정상 렌더링
포트폴리오
- 연금 포트폴리오 (퇴직연금): ₩78,627,545, +32.32%, 5종목 보유
- ACE KRX금현물 (14.5%, +41.15%)
- TIGER 미국S&P500 (18.0%, +25.38%)
- KIWOOM 국고채10년 (20.6%, -7.31%)
- TIGER 200 (2.4%, +241.95%)
- KODEX 200미국채혼합 (44.6%, +58.89%)
- 거래내역 탭: 2026-03-23 최근 매수 이력 정상 표시
- 분석 탭: 자산 배분 차트 + 목표 vs 실제 비중 비교 정상
전략
- 멀티 팩터, 슈퍼 퀄리티, 밸류 모멘텀, 김종봉 단기매매 4개 카드 정상
- KJB 전략 실행: 30/30 종목 (기준일 2026-05-09), 팩터 스코어 순위 정상
- 1위: LS ELECTRIC (산업재, 종합 86.55)
매매 신호
- 오늘의 신호: 매수 0, 매도 0, 부분매도 0 (주말 - 정상)
- 신호 이력: 2026-05-07 HD현대중공업(329180) 매수, 진입가 693,000, large_candle 사유
데이터 수집
- 수집 작업 6종 정상 표시 (종목 마스터, 섹터 정보, 가격 데이터, 밸류 지표, ETF 마스터, ETF 가격)
- 주식 마스터: 2,787건 수집 완료
- ETFPriceCollector: 52,038건 수집 성공
❌ 버그 상세
BUG-01: 백테스트 전면 실패 (심각)
증상: 모든 전략, 모든 날짜 범위에서 실패
에러 메시지: 백테스트 실패: No trading days found in the specified period
재현: 백테스트 설정에서 어떤 전략을 선택해도 실행 즉시 실패
근본 원인:
backend/app/services/backtest/engine.py:316의 _get_trading_days()가 Price 테이블에서 해당 기간 날짜를 조회하는데, DB에 2020~2024년 가격 데이터가 없어 빈 리스트 반환 → 에러 발생
def _get_trading_days(self, start_date: date, end_date: date) -> List[date]:
prices = self.db.query(Price.date).filter(...).distinct().all()
return [p[0] for p in prices] # 2020~2024 데이터 없으면 []
수정 방향:
- (근본 해결) pykrx로 2020~2024년 과거 가격 데이터 소급 수집
- (임시 조치) 백테스트 기본 날짜를 실제 보유 데이터 기간으로 변경 + UI에서 사용 가능 날짜 범위 안내
BUG-02: 데이터 탐색 차트 버튼 런타임 에러
증상: /admin/data/explorer에서 종목 옆 "차트" 버튼 클릭 시 전체 페이지 에러 화면 표시
에러: "문제가 발생했습니다. 페이지를 새로고침 해주세요."
재현: 데이터 탐색 → 삼성전자 검색 → 차트 클릭
추정 원인: 차트 모달/컴포넌트 렌더링 중 unhandled exception (가격 데이터 없음 또는 props 타입 오류)
BUG-03: PriceCollector 작업 상태 미업데이트
증상: 5/6, 5/7, 5/8 날짜의 PriceCollector가 running 상태로 잔류 (완료/실패 처리 안 됨)
영향: 작업이 실제로 수집됐는지 여부 불투명, 모니터링 신뢰도 저하
추정 원인: PriceCollector 작업이 완료/에러 시 DB 상태를 업데이트하지 않거나, 프로세스가 비정상 종료됨
BUG-04: /admin 경로 404
증상: /admin 직접 접근 시 404
실제 경로: /admin/data
영향: 낮음 (사이드바에서 접근하면 정상)
수정 방향: /admin → /admin/data 리다이렉트 추가
구현됐지만 UI에 미노출된 기능
A. 프론트엔드 페이지 존재, 진입 경로 없음 (직접 URL 접근만 가능)
| URL | 기능 | 연결 방식 |
|---|---|---|
/portfolio/[id]/correlation |
상관관계 분석 (상관관계 매트릭스, 분산화 점수) | 사이드바·포트폴리오 상세 어디에도 링크 없음 |
/portfolio/[id]/benchmark |
벤치마크 비교 (KOSPI 대비 수익률, Sharpe, MDD 비교) | 진입 경로 없음 |
/portfolio/[id]/drawdown |
드로우다운 분석 (현재·최대 MDD, 경보 한도, 히스토리 차트) | 진입 경로 없음 |
/portfolio/[id]/history |
포트폴리오 수익률 히스토리 (별도 전체 페이지) | 진입 경로 없음 |
/strategy/optimizer |
전략 파라미터 최적화 (그리드 서치, CAGR/MDD/Sharpe 기준 랭킹) | 전략 페이지에 링크 없음 |
/pension/tax-simulator |
퇴직연금 세금 시뮬레이터 (세액공제, 연금 vs 일시금 세금 비교) | 퇴직연금 페이지에 링크 없음 |
/backtest/compare |
백테스트 결과 비교 (여러 백테스트 동시 비교) | 백테스트 "비교" 버튼 존재하나 백테스트 결과가 없어 접근 불가 |
/strategy/compare |
전략 비교 페이지 | 전략 페이지 "전략 비교" 버튼으로 접근 가능 (노출됨) |
B. 백엔드 API 구현 완료, 프론트엔드 페이지 없음
| API 파일 | 기능 | 상태 |
|---|---|---|
backend/app/api/agents.py |
자연어 쿼리 기반 AI 투자 분석 에이전트 (/api/agent) — 스트리밍 응답, tool call 로그 포함 |
백엔드만 구현, 프론트엔드 완전 미구현 |
backend/app/api/screening.py |
KJB 종목 스크리닝 신호 (/api/screening/today, /api/screening/history, /api/screening/watchlist, /api/screening/auto-orders) |
백엔드만 구현, 프론트엔드 완전 미구현 |
C. 요약
- 직접 URL로 접근은 가능하나 진입 경로가 없는 페이지: 7개
→ 포트폴리오 분석 3종(상관관계·벤치마크·드로우다운), 포트폴리오 히스토리, 전략 최적화, 퇴직연금 세금 시뮬레이터, 백테스트 비교 - 백엔드만 구현된 기능: 2개 (AI 에이전트, 스크리닝)
- 이미 UI에 노출된 기능 중 작동 안 하는 것: 백테스트 전체 (BUG-01)
환경 정보
- 주식 마스터: 2,787건
- ETF 가격: 52,038건
- 포트폴리오: 3개 (연금 2개, 키움 일반 1개)
- 가격 데이터 범위: 2025년 이후로 추정 (2020~2024 데이터 없음)