Skip to content

Conversation

@Hwanvely
Copy link
Collaborator

@Hwanvely Hwanvely commented Dec 1, 2025

개요

피버타임(FeverTime) 아이템 사용 시 발생하는 네트워크 지연(Latency) 문제와 일시정지(Pause) 후 시간 동기화 문제를 해결하기 위해 도메인 로직을 리팩토링했습니다.

변경 사항

  1. 검증 기준 변경 (Server Time → Event Time)
  • 기존: 요청이 서버에 도착한 시점을 기준으로 피버타임 유효성을 검사.
  • 변경: 클라이언트에서 스트릭이 발생한 시점(occurredAt)을 기준으로 검사하도록 변경하여, 네트워크 지연으로 인해 정당한 플레이가 무시되는 문제를 해결했습니다.
  1. 네트워크 지연 버퍼(Latency Buffer) 적용
    FeverTime.start() 직후에 클라이언트가 보낸 요청이 서버 시작 시간보다 미세하게 앞서는 경우(Latency)를 고려하여, 시작 시간 기준 3초 전까지의 요청을 유효한 것으로 인정하도록 허용 범위를 조정했습니다.

  2. 일시정지/재개(Pause/Resume) 로직 개편

  • 기존: Duration(남은 시간)을 계산하여 저장하는 방식.
  • 변경: feverEndAt(종료 시점)을 관리하는 방식으로 변경.

resume() 시: (현재 시간 - 마지막 정지 시간)만큼 feverEndAt을 뒤로 미루어, 정지했던 시간만큼 피버 타임이 정확히 연장되도록 구현했습니다.

@Hwanvely Hwanvely self-assigned this Dec 1, 2025
@Hwanvely Hwanvely added the fix label Dec 1, 2025
@Hwanvely Hwanvely merged commit 08e0eba into dev Dec 1, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants