오늘의 업데이트: Claude는 신이야.
🎯 큰 그림
지난 한 번의 main 이후 게임에 통계 시스템 + 자동모드 + 자산 표시 + 모바일 UX 개선이 한꺼번에 들어갑니다. DB 마이그레이션 1건(stats_system) 포함 — 배포 시
pnpm db:migrate 필요.
🆕 새 기능
📊 통계 시스템 + /stats 페이지
- 모든 플레이 액션(주사위/이벤트/거래/아이템/장비)이 자동으로 통계에 누적됩니다.
- 헤더의 "통계" 메뉴에서 현재 캐릭터 + 계정 평생 누적 통계를 볼 수 있습니다.
- 수명 누적치(롤 수/돈/실현이익 등), 피크값(최고 자산/스탯), 분포표(주사위 출목, 이벤트별 만난 횟수, 장비 등급별 획득 등) 제공.
🤖 자동모드
- A 키 또는 토글 버튼으로 주사위를 자동으로 굴립니다.
- 스테미나가 부족해지면 보유 회복 아이템을 알아서 사용합니다.
- 회복 아이템이 떨어지거나 오류가 반복되면 자동 중단.
💰 자산 표시
- 캐릭터 패널의 돈 표시가 자산: {현금}({총자산})원으로 바뀝니다.
- 총자산 = 현금 + 보유 주식 시세가 + 보유 장비 판매가(정가의 절반).
⌨️ 주식 모달 단축키
- S 키로 주식 모달을 열고 닫습니다. Esc로도 닫힘.
- [주식] 버튼 옆에 [S] 키 힌트 표시.
✨ UX 개선
- 한글 IME 호환 단축키: A/Q/W/E/R/S 모두 한영 상관없이 동작.
- 모바일 플레이 레이아웃: 보드를 화면 위쪽으로, 컨트롤 세로 스택, iOS 스타일 자동 토글, 칸 크기/글자 크기 조정.
- 자잘한 개선:
- Esc로 주식 거래창 취소
- 인벤토리 정렬이 매 렌더마다 안정적으로 유지
- 한 바퀴 토스트 알림 제거 (집 이벤트가 이미 알려주므로 중복)
- 정보 모달 + 주식 모달이 동시에 열려 있을 때 Esc 한 번에 하나씩 깔끔히 닫힘
🛠 개발자 노트
- 테스트가 145개 → 315개로 늘었습니다 (통계 누적 경로, 자산 계산, 인벤토리 정렬, 오토모드 의사결정 등).
- CharacterView에 portfolioValue, sellableEquipmentValue 필드 추가. toView(c, stockPrices) 시그니처 변경(필수 인자).
- Prisma 모델 추가: CharacterStats, AccountStats, Season. User.activeCharacterId 포인터 추가.
- 마이그레이션 파일: prisma/migrations/20260512000000_stats_system/migration.sql.