온라인 타이머, 다른 탭 보면 늦게 울리는 이유

타이머를 켜두고 다른 탭에서 딴 일을 하다가 돌아와 보면, 화면에는 아직 시간이 남아 있는 것처럼 보이는데 실제로는 그보다 훨씬 더 지나 있던 경험이 있을 겁니다. 반대로 종료 알림음을 아예 못 듣고 지나가는 경우도 흔합니다. 둘 다 타이머가 고장 나서가 아니라, 브라우저가 화면에 보이지 않는 탭의 자바스크립트 실행 주기를 의도적으로 늦추기 때문에 생기는 현상입니다.
요약 ① 백그라운드(보이지 않는) 탭에서는 브라우저가 자바스크립트 타이머 실행 주기를 스스로 줄입니다. 배터리·CPU를 아끼기 위한 의도된 정책입니다. ② 매 틱마다 숫자를 깎아 나가는 '카운터형' 타이머는 이 지연이 표시 오차로 그대로 쌓입니다. ③ 목표 시각을 못박아 두고 매번 지금 시각과의 차이를 다시 계산하는 '목표시각형'이면, 실행이 늦게 재개돼도 화면 값 자체는 늘 정확합니다.
왜 이런 일이 생기나 — 브라우저가 일부러 늦춘다
크롬·파이어폭스 등 대부분의 브라우저는 사용자가 보고 있지 않은 탭의 자바스크립트 타이머 실행을 의도적으로 줄입니다. 배터리와 CPU를 아끼기 위해 설계된 정책이지 버그가 아닙니다.
크롬 개발자 공식 블로그는 이 단계를 구체적으로 설명합니다. 1초 미만 간격으로 반복되는 타이머는 백그라운드에서 초당 최대 1회로 묶이고, 탭이 5분 넘게 안 보이는 상태로 이어지면 '집중 스로틀링(intensive throttling)' 단계로 넘어가 실행 빈도가 1분에 1회 수준까지 떨어질 수 있습니다. (Chrome for Developers 블로그)
즉 5분짜리 타이머를 걸어 두고 30분간 다른 탭만 보고 있었다면, 그 사이 타이머 코드는 몇 초에 한 번이 아니라 1분에 한 번 정도만 실행됐을 수 있다는 뜻입니다. 문제는 실행 빈도 자체가 아니라, 그 사이에 놓친 시간을 타이머가 어떻게 계산하느냐입니다.
카운터형과 목표시각형, 계산 방식의 차이
화면 숫자가 만들어지는 방식은 크게 두 가지입니다.
- 카운터형: 틱이 실행될 때마다 "1초가 지났다"고 가정하고 남은 시간에서 그만큼을 뺍니다. 틱이 스로틀링으로 건너뛰면, 실제로는 여러 초가 지났는데도 딱 한 틱만큼만 깎여 화면과 실제 시간이 어긋납니다. 어긋난 채로 다음 틱도 한 틱만큼만 다시 깎으므로 오차가 계속 쌓입니다.
- 목표시각형: 시작하는 순간 "몇 시 몇 분 몇 초에 끝난다"는 목표 시각 하나를 저장해 두고, 틱이 실행될 때마다 그 목표 시각과 지금 시각의 차이만 새로 계산합니다. 틱 자체가 늦게 실행돼도, 실행되는 순간의 실제 남은 시간을 다시 구하는 것이라 오차가 쌓이지 않습니다.
이 도구의 타이머 탭도 목표시각형입니다. 시작 버튼을 누르는 순간의 시각에 설정 시간을 더한 값을 목표 시각으로 저장해 두고, 반복 실행될 때마다 그 값과 현재 시각의 차이를 다시 계산해 화면에 표시합니다.
다만 이 계산 방식이 고쳐 주는 건 '화면에 뜨는 남은 시간이 정확한가'까지입니다. 탭을 오래 안 보고 있으면 브라우저가 알림음 재생 자체를 늦추거나 건너뛸 수 있고, 스마트폰 화면을 꺼 두면 탭 실행이 거의 멈춰 알림음이 안 울릴 수 있습니다. 정확한 남은 시간 계산과 그 순간 소리가 나는 것은 별개의 문제입니다.
이렇게 확인합니다 — 어떤 타이머든 직접 테스트 가능
이 차이는 전문가 판단이 필요 없는, 눈으로 바로 확인되는 사실입니다. 아래 절차는 이 도구든 다른 웹 타이머든 똑같이 적용됩니다.
- 타이머를 2분처럼 딱 떨어지는 값으로 맞추고 시작합니다.
- 곧바로 다른 탭이나 다른 앱으로 전환합니다.
- 스마트폰 잠금화면 시계 같은 별도의 시계로 정확히 2분을 셉니다.
- 2분이 지난 시점에 원래 탭으로 돌아옵니다.
목표시각형 타이머라면 이 순간 화면은 이미 00:00이거나 종료 표시로 바뀌어 있어야 합니다. 반대로 아직 몇 초·몇십 초가 남은 것처럼 표시된다면, 그 타이머는 카운터형이라 백그라운드에서 오차가 쌓였다는 뜻입니다.
저희 도구로 확인하기. 위 테스트를 그대로 해 보면, 다른 탭에 있다가 돌아와도 남은 시간이 실제 시각과 항상 맞아떨어지는 걸 확인할 수 있습니다.
무료 · 가입 불필요 · 서버 전송 없이 브라우저에서 바로 실행

자주 막히는 지점
| 상황 | 원인 | 확인 방법 |
|---|---|---|
| 다른 탭에 오래 있다가 돌아오니 이미 끝나 있음 | 목표시각형이면 정상 — 계산은 처음부터 맞았고 화면 갱신만 늦게 반영된 것 | 돌아온 즉시 화면이 바로 정확한 값으로 바뀌는지 확인 |
| 알림음이 아예 안 들림 | 브라우저가 소리 재생에 사용자의 직접 조작을 요구하거나, 백그라운드에서 오디오 실행이 늦춰짐 | '시작' 버튼을 직접 눌렀는지, 탭·시스템 음소거 여부를 확인 |
| 스마트폰 화면을 꺼 두면 알림이 안 옴 | 화면이 꺼지면 브라우저 탭 실행이 거의 멈춤 | 알림이 꼭 필요하면 화면을 켜 둔 채로 대기 |
| PC가 절전모드에서 깨어나면 시간이 안 맞는 듯 보임 | 절전 중엔 실행이 멈췄다가 깨어난 시각과 다시 비교되므로 순간적으로 값이 크게 갱신됨 | 깨어난 직후 화면이 한 번에 정확한 값으로 바뀌는지 확인 |
정리
- 브라우저는 배터리를 아끼려고 보이지 않는 탭의 타이머 실행 빈도를 스스로 낮춥니다. 버그가 아니라 문서화된 정책입니다.
- 매 틱마다 숫자를 깎아 나가는 '카운터형' 타이머는 이 지연이 표시 오차로 쌓입니다.
- 목표 시각을 못박아 두고 매번 그 차이를 다시 계산하는 '목표시각형'은 오차가 쌓이지 않습니다.
- 다만 화면 숫자의 정확도와 그 순간 소리가 울리는지는 별개입니다. 알림음까지 확실히 들으려면 탭을 켜 둔 채로 기다리는 편이 안전합니다.
무료 · 가입 불필요 · 서버 전송 없이 브라우저에서 바로 실행
자주 묻는 질문
다른 탭에 있다가 돌아왔는데 타이머가 이미 끝나 있어요. 고장인가요?
아닙니다. 목표시각형 계산이라면 이건 정상 동작입니다. 목표 시각이 이미 지났다는 사실을 화면이 뒤늦게 반영한 것뿐이고, 종료 시점 판정 자체는 처음부터 정확했습니다.
알림음이 안 들리는데 왜 그런가요?
브라우저는 소리 재생에 사용자의 직접적인 조작을 요구합니다. 페이지에서 '시작' 버튼을 스스로 눌러야 하고, 탭이나 시스템이 음소거돼 있지 않은지도 함께 확인해야 합니다.
스톱워치 랩(구간) 기록도 같은 방식으로 계산되나요?
네. 스톱워치도 시작한 시각을 기준점으로 저장해 두고, 랩을 기록하는 순간 현재 시각과의 차이를 계산합니다. 랩 버튼을 누르는 타이밍이 다소 늦어져도, 기록되는 경과 시간 자체는 그 순간의 실제 값입니다.
뽀모도로 25분은 왜 하필 25분인가요?
뽀모도로 기법은 1980년대 후반 이탈리아의 프란체스코 치릴로가 대학생 시절 고안한 시간관리법으로, 이름은 그가 쓰던 토마토 모양 주방 타이머에서 따왔습니다. 25분 집중과 5분 휴식을 한 세트로 반복하는 구성이 표준으로 굳어진 것이며, 25라는 숫자 자체에 별도의 과학적 근거가 있는 것은 아닙니다.
