Parent Epic
Story 개요
캐치마인드 게임에서 라운드 타이머가 제대로 동작하지 않는 버그를 수정합니다.
프론트엔드 임시 조치 + 백엔드 serverTime 필드 추가로 해결합니다.
문제 상황
roundStartTime만 전송되고 serverTime이 없어 클라이언트 시계 오차 보정 불가
roundStartTime이 누락되거나 잘못된 값으로 전송되는 경우 존재
- 타이머가 0으로 표시되거나 비정상적으로 동작
Acceptance Criteria
Tasks
기술 명세
FE 임시 조치 (BE 변경 전)
```javascript
const now = Date.now();
const serverTime = roundData.serverTime || now;
let roundStartTime = roundData.roundStartTime || now;
// roundStartTime이 미래 시간이면 현재로 보정
if (roundStartTime > now + 1000) {
roundStartTime = now;
}
```
BE serverTime 필드 추가
```javascript
// ROUND_START 메시지 구조
{
"type": "ROUND_START",
"data": {
"roundStartTime": 1705744800000,
"serverTime": 1705744800500, // 추가!
"roundDuration": 60
}
}
```
우선순위
🔴 긴급 - 현재 게임 플레이에 직접적인 영향
예상 작업량
Parent Epic
Story 개요
캐치마인드 게임에서 라운드 타이머가 제대로 동작하지 않는 버그를 수정합니다.
프론트엔드 임시 조치 + 백엔드 serverTime 필드 추가로 해결합니다.
문제 상황
roundStartTime만 전송되고serverTime이 없어 클라이언트 시계 오차 보정 불가roundStartTime이 누락되거나 잘못된 값으로 전송되는 경우 존재Acceptance Criteria
Tasks
기술 명세
FE 임시 조치 (BE 변경 전)
```javascript
const now = Date.now();
const serverTime = roundData.serverTime || now;
let roundStartTime = roundData.roundStartTime || now;
// roundStartTime이 미래 시간이면 현재로 보정
if (roundStartTime > now + 1000) {
roundStartTime = now;
}
```
BE serverTime 필드 추가
```javascript
// ROUND_START 메시지 구조
{
"type": "ROUND_START",
"data": {
"roundStartTime": 1705744800000,
"serverTime": 1705744800500, // 추가!
"roundDuration": 60
}
}
```
우선순위
🔴 긴급 - 현재 게임 플레이에 직접적인 영향
예상 작업량