- 윷놀이·원카드·숫자 타일·다빈치 코드·요트 다이스 브랜치 병합(등록 목록·E2E 계획 충돌 정리) - 섯다 E2E: 동점·구사 재경기가 나오면 결과가 나올 때까지 계속 체크 - bun run test: 무작위 1,000판 테스트가 부하 때 5초 기본 제한을 넘던 문제 → --timeout 60000 - 로드맵 M4 결과, README 확인 명령 갱신 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.9 KiB
4.9 KiB
12. 로드맵
각 마일스톤은 "완료 기준"을 모두 통과해야 끝난다. 마일스톤이 끝날 때마다 Gitea에 푸시하고, 큰 테스트(부하·장애 주입·E2E)는 푸시한 커밋에서 돌린다.
M0. 계획서 (현재)
docs/전체 작성 → Gitea 푸시.- 완료 기준: 모든 공통 문서 + 26개 게임 문서 존재, 사용자 확인 항목 정리.
M1. 플랫폼 뼈대 + 오목
- 모노레포, 공용 타입/스키마, 엔진(RNG·러너·테스트 도구), SQLite·마이그레이션.
- 게스트 로그인, 세션,
/api/me, 닉네임 변경. (디스코드 로그인은 코드까지 작성, 실제 연결은 앱 정보 받은 뒤) - 방: 생성, 6자리 코드, 링크 입장, 자동 착석, 준비, 시작, 강퇴, 방장 이전, 관전, 채팅/반응, 한 판 더.
- WS: 재접속, seq, 중복 방지, 속도 제한, 하트비트, 서버 재시작 복구.
- 웹: 홈, 코드 입력, 대기실(코드/링크 복사, 공유, QR), 오목 화면, 결과, 계정, 글자 크기/다크 모드.
- 완료 기준:
10-testing.md3절 12개 시나리오 자동 테스트 통과, 오목 규칙 테스트 통과, E2E 1개 통과, 성능 예산 통과.
M1.5 관리자 사이트
- 슈퍼어드민(디스코드 ID 고정)·어드민(디스코드 ID로 추가) 권한, 관리자 API, 관리자 화면(대시보드·게임·방·사이트·사용자·관리자·기록).
- 게임 옵션 스키마로 설정 화면 자동 생성, 옵션 잠금, 사이트 설정(공지·점검·금지어·제한값).
- 완료 기준:
14-admin.md9절 테스트 통과, 관리자 화면 E2E 통과.
M2. 2인 전략 게임 + 안정성 검증
- 체스, 바둑, 장기, 오셀로. 개인 시계(초읽기/증가), 무르기 요청, 무승부 제안, 기권.
- 디스코드 로그인 실제 연결(앱 정보가 준비된 경우).
- 첫 부하 테스트·장애 주입 테스트 + 보고서.
- 테스트 서버 배포(위치가 정해진 경우).
- 진행 결과(2026-10-04): 네 게임 완료(규칙 테스트 체스 40·장기 46·바둑 50·오셀로 31), 게임 공통 E2E(PC 방장+휴대폰 친구),
접근성 axe 위반 0, 부하·장애 주입 통과(
reports/load-20261004.md). 체스960은 chess.js가 지원하지 않아 후순위(M9). 디스코드 실제 연결·테스트 서버 배포는 사용자 정보 대기.
M3. 카드 게임 기반 + 섯다·포커
- 공용 카드 컴포넌트(트럼프·화투 SVG 직접 제작), 베팅 엔진(한국식/노리밋), 사이드 팟.
- 섯다 전 모드, 포커 전 모드.
- 공정성 확인(시드 해시 공개) 기능.
- 진행 결과(2026-10-05): 섯다(2장·3장, 땡잡이·암행어사·구사 재경기, 사이드 팟)와 포커 7개 모드(홀덤·오마하·7포커·하이로우·바둑이·5카드 드로우·인디언) 규칙 + 화면 완료. 규칙 테스트 섯다 54·포커 52·족보 판정 24, 무작위 플레이 1,000판 이상(칩 총량 보존·비공개 카드 유출 없음), 카드 게임 E2E(PC 방장 + 휴대폰 2명, 섯다 1판·7포커 초이스부터 1판), 결과 화면 공정성 확인(SHA-256 씨앗 대조).
M4. 가족 게임
- 윷놀이, 원카드(+색깔 카드 모드), 숫자 타일(루미큐브 방식), 다빈치 코드, 요트 다이스.
- 진행 결과(2026-10-05): 다섯 게임 규칙 + 화면 완료. 규칙 테스트 윷놀이 33·원카드 53·숫자 타일 56·다빈치 코드 31·요트 36,
게임마다 무작위 플레이 1,000판(말·카드·타일 보존, 비공개 정보 유출 없음, 모든 상태에서 시간 초과 행동 합법).
윷놀이 팀전(짝수 인원) 검사를 위해 엔진에
playerCountError(options, count)를 추가하고 방 시작 시 확인. E2E: 윷놀이·요트 한 판 끝까지, 원카드 3인 60턴, 숫자 타일·다빈치 코드 여러 턴(PC 방장 + 휴대폰).
M5. 마작·고스톱
- 리치 마작(4인, 3인), 점수 계산기 테스트(역·부 계산 사례 100개 이상), 초보 모드.
- 고스톱/맞고.
M6. 뱅 + 실시간 반응 + 땅따먹기
- 뱅(반응 창 처리), 할리갈리(서버 도착 순서 판정), 주사위 땅따먹기.
M7. 보드게임카페 인기 게임
- 달무티, 보석 상인, 쿼리도, 라스베가스, 바퀴벌레 포커, 구십구.
M8. 파티 게임
- 도블, 그림 맞히기(붓질 스트리밍), 마피아(채팅 채널).
M9. 다듬기
- PWA(홈 화면 추가, 오프라인 안내), 게임 기록 다시 보기, 게임별 튜토리얼 강화.
- 2차 부하 테스트, 필요 시 방 단위 다중 프로세스 분산 검토.
- (선택) 혼자 연습용 간단한 컴퓨터 상대.
- 체스960(자체 캐슬링 구현 + perft 검증).
순서 원칙
- 플랫폼(M1)의 안정성 기능이 먼저다. 게임은 그 위에 하나씩 얹는다.
- 각 게임은 "규칙 모듈 + 테스트 통과 → 화면 → E2E 한 판" 순서로 완성하고 다음 게임으로 간다.
- 진행 중 사용자가 순서를 바꾸고 싶으면 이 문서를 먼저 고친다.