결정 01
마감 시각을 클라이언트 시계로 계산하지 않는다
- 문제
- 남은 시간을 브라우저 로컬 시각으로 계산하면 사용자 기기의 시계가 몇 분씩 틀어져 있을 때 '아직 30초 남았는데 마감됨' 같은 상황이 생깁니다. 돈이 걸린 화면에서는 곧바로 분쟁이 됩니다.
- 선택
- 서버 응답 시각과 최초 렌더 시점의 로컬 시각 차이(offset)를 한 번 구해두고, 이후 모든 카운트다운을 '로컬 시각 + offset' 기준으로 계산했습니다. 마감 직전 구간에서는 확인 주기를 좁힙니다.
- 결과
- 기기 시계가 틀어져 있어도 모든 참여자가 동일한 잔여 시간을 봅니다. 최종 판정은 서버에 두어 화면과 결과가 어긋나지 않게 했습니다.