서버시간 측정 방법
온더세컨드가 하는 일
- 사이트의 서버 시계를 ms 단위로 잽니다. 표준시(KRISS·Google NTP)와 비교하고, 내 인터넷 지연까지 계산해 정확히 누를 시각을 알려 줍니다.
- 오픈 직전까지 계속 다시 잽니다. 오픈 30분 전부터는 매분 재고, 사이트 뒤의 서버를 모두 확인해 시계가 바뀌면 누를 시각을 바로 고칩니다.
- 정확도를 누구나 확인할 수 있습니다. 시계를 매일 무작위로 틀어 둔 공개 검증 서버와, 10분마다 하는 표준시 자체 점검 결과를 공개합니다(검증 결과).
웹사이트 서버의 시계를 표준시와 비교해 ms 단위로 재고, 설정한 오픈 시각까지 계속 다시 잽니다.
서버 시계를 읽는 법
웹사이트는 요청에 답할 때마다 Date 줄에 서버의 현재 시각을 적어 보냅니다. 이 시각은 10:00:00처럼 초 단위까지만 적혀 있습니다. 그래서 응답 한 번으로는 서버 시계가 “그 1초 안의 어딘가”에 있었다는 것까지만 알 수 있습니다.
범위를 좁히는 법
업다운 게임과 같습니다. 서버의 초가 바뀌는 순간을 맞히려고, 그 순간이라고 예상되는 때에 요청을 보냅니다. 응답이 :59면 아직 초가 바뀌지 않은 것이니 더 뒤, :00이면 이미 바뀐 것이니 더 앞입니다. 어느 쪽이든 남은 범위의 절반이 지워집니다.
1초(1000ms)에서 시작해 500ms, 250ms… 이렇게 반씩 좁혀 갑니다. 요청마다 보낸 시각과 응답을 받은 시각도 함께 기록하기 때문에, 왕복 한 번에 걸리는 시간보다 더 좁히지는 않습니다. 가까운 서버라면 몇 ms가 남습니다.
네트워크 지연을 다루는 법
인터넷이 느리다고 결과가 한쪽으로 밀리지는 않습니다. 범위가 넓어질 뿐입니다. 가는 길과 오는 길의 속도가 달라도 실제 값은 그 범위 안에 있습니다. 그래서 측정할 때마다 표준시와의 차이, ± 오차, 왕복 시간(RTT)을 따로 보여드립니다. 응답이 6개보다 적은 측정은 쓰지 않습니다. 사이트가 붐벼 오차가 ±150ms보다 넓게 나오면 그 값을 답으로 쓰지 않고, 직전의 정밀한 측정값이 아직 맞는지 확인하는 데 씁니다. 맞지 않으면 그사이 시계가 바뀐 것이므로 새 측정으로 바꾸고, 일찍 도착하지 않도록 누를 시각을 범위의 늦은 쪽 끝에 맞춥니다.
표준시 기준
우리 서버는 널리 쓰이는 시간 동기화 프로그램인 chrony로 시스템 시계를 표준시에 맞춰 둡니다. 그리고 10분마다 한국표준과학연구원(KRISS)과 Google의 공개 시간 서버로 한 번 더 확인하고, 왕복이 가장 짧은 응답을 씁니다. 시간 서버의 응답 한 번은 실제 시각이 “왕복 시간의 절반(±RTT/2) 범위 안”이라는 것까지만 알려 줍니다. 시스템 시계가 그 범위 안에 있으면 그대로 쓰고, 벗어날 때만 보정합니다.
확인 결과
2026년 11월 1일 서울 서버에서, 서로 다른 회사의 CDN을 쓰는 사이트들을 쟀습니다. 국내 예매처 3곳과 해외 티켓·쇼핑 사이트 10곳 이상이 모두 각자의 오차 범위 안에서 표준시와 일치했습니다.
서울에서 재기 때문에, CDN으로 전 세계에 퍼져 있는 사이트는 서울에 응답하는 서버의 시계를 잽니다. 다른 나라의 이용자에게 응답하는 서버는 다른 서버일 수 있습니다. 지금까지 잰 결과로는 이런 서버들의 시계도 정확했지만, 해외 사이트의 측정값은 보장이 아니라 믿을 만한 기준으로 봐 주세요.