sangatsu
1. 왜
여러가지 기술 스택을 시험해볼 미니게임이 필요함 익숙한 기술부터 시작해서 여러가지를 쓰며 재구현해보자
2. 피처
- 유저 관리
- Anonymous User
- 닉네임 등록 가능
- 세션 관리: 브라우저 종료 후 재접속 시 동일 유저로 인식
- 게임 중 disconnect 후 재접속시 처리
- 최근 전적 조회
- 랭킹 시스템
- MMR 기반 랭킹
- 매치 메이킹 시스템
- 매치 메이킹 큐 등록
- 매칭 및 게임 시작
- MMR 관리
- 게임 시스템
- 승패 확인.
- 수 두기. 유효성 검사.
- 턴 기반 상태 관리
- 상호작용 (정해진 이모지로 감정표현)
- 시간제한
- 리플레이
3. API
User Management:
POST /api/users/nickname
GET /api/users/me
GET /api/users/{userId}/stats
Matchmaking:
POST /api/match/queue
DELETE /api/match/queue
POST /api/match/{matchId}/accept
POST /api/match/{matchId}/decline
Game:
GET /api/games/{gameId}
POST /api/games/{gameId}/moves
POST /api/games/{gameId}/surrender
POST /api/games/{gameId}/emotes
POST /api/games/{gameId}/draw-offer
Ranking:
GET /api/rankings
GET /api/rankings/weekly
GET /api/rankings/monthly
GET /api/users/{userId}/ranking