Skip to content

[STORY] 캐치마인드 타이머 버그 긴급 수정 #169

Description

@DDINGJOO

Parent Epic

Story 개요

캐치마인드 게임에서 라운드 타이머가 제대로 동작하지 않는 버그를 수정합니다.
프론트엔드 임시 조치 + 백엔드 serverTime 필드 추가로 해결합니다.

문제 상황

  1. roundStartTime만 전송되고 serverTime이 없어 클라이언트 시계 오차 보정 불가
  2. roundStartTime이 누락되거나 잘못된 값으로 전송되는 경우 존재
  3. 타이머가 0으로 표시되거나 비정상적으로 동작

Acceptance Criteria

  • 라운드 시작 시 타이머가 정확히 60초부터 카운트다운
  • 클라이언트 시계와 서버 시계 차이가 있어도 동일한 타이머 표시
  • 재접속 시에도 남은 시간이 정확히 표시

Tasks

  • Task 1.1: [FE] roundStartTime 검증 및 fallback 로직 추가
  • Task 1.2: [FE] useTimer 훅 분리 및 시간 동기화 로직 구현
  • Task 1.3: [BE] ROUND_START 메시지에 serverTime 필드 추가 (백엔드 팀)
  • Task 1.4: [FE] serverTime 기반 타이머 계산 로직 적용

기술 명세

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
}
}
```

우선순위

🔴 긴급 - 현재 게임 플레이에 직접적인 영향

예상 작업량

  • FE: 0.5일
  • BE: 0.5일

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdomain:freetalk프리토킹 도메인priority:highHigh prioritystory스토리 이슈

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions