흩어지는 시간을 흘려보내지 마세요 - Focus Timer 사용 가이드

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
흩어지는 30분, 1시간을 그냥 흘려보내지 마세요 . Develog의 Focus Timer는 공부·작업 시간을 자동으로 모아 히트맵 + 타임테이블로 남기고, 끝난 뒤에는 곧바로 글로 정리할 수 있게 이어줍니다.
좌측 하단(또는 위젯을 드래그한 위치)에 떠 있는 ⏱ 동그란 버튼이 바로 Focus Timer입니다.

모바일에서는 표시되지 않습니다. 위젯은 테블릿(가로 768px 이상) 화면에서만 동작해요. 모바일 전용 UI는 추후 추가 예정입니다. 그 전까지는 테블릿/노트북/데스크톱에서 사용해주세요.
이걸로 할 수 있는 일은 세 가지입니다.
💡 하루 30분씩만 꾸준히 — 한 달 뒤엔 타임테이블이 채워져 포트폴리오가 됩니다.

다이얼(아날로그 시계 모양)에서 시간을 선택합니다.
작업 vs 잠금다이얼 아래 "공부 모드 선택" 영역에 두 개의 탭이 있습니다. (또는 work / lock 으로 부릅니다 — 이 가이드에서도 함께 표기합니다.)
| 모드 | 설명 |
|---|---|
| 작업 (work, 기본) | 평소 사용 모드. 다른 페이지로 이동해도 타이머가 계속 돕니다. |
| 잠금 (lock) | 강한 집중용. 시작하면 풀스크린으로 진입하고, 풀스크린을 빠져나가면 자동으로 일시정지됩니다. |
💡 언제 잠금을 쓰나요? 시험 직전 마무리, 마감 직전 작업처럼 나도 모르게 다른 탭을 여는 걸 막고 싶을 때 추천합니다.
시작 버튼선택한 시간이 표시된 오렌지색 {N}분 시작 버튼을 누르면 타이머가 돕니다. 잠금 모드면 동시에 풀스크린으로 들어갑니다.
타이머가 도는 동안 패널은 이렇게 바뀝니다.

💡 패널을 접어두셔도(작업 모드 한정) 둥근 FAB 안에 진행률 링과 남은 시간(
MM:SS)이 함께 표시됩니다. 브라우저 탭 제목에도⏱ MM:SS · Develog형태로 나타나서 다른 탭에 가 있어도 한눈에 확인됩니다.
남은 시간을 MM:SS 로 표시합니다. 1초 단위로 줄어듭니다.
fm-status-negative) — 정상 동작 중. 분 단위 활성 segment가 빨갛게 차오릅니다.| 버튼 | 동작 |
|---|---|
| ⏸ 일시정지 | 즉시 일시정지. 누적은 그대로 보존됩니다. |
| ▶ 이어서 | 일시정지 중일 때만 보입니다. 누르면 다시 카운트 시작. |
| +10분 | 남은 시간이 5분 미만일 때만 보입니다. 마무리가 살짝 모자랄 때 한 번 더. |
| ■ (종료) | 한 번 누르면 "정말 종료할까요?" 확인 → 한 번 더 눌러야 종료됩니다. (실수 방지) |
잠금 모드는 별도의 풀스크린 화면이 뜹니다.

⚠️ 잠금 모드 핵심: 다음 중 어느 하나라도 발생하면 자동으로 일시정지 됩니다 —
ESC로 풀스크린 빠지기,Cmd+Tab/Alt+Tab으로 다른 앱 전환, 다른 창 클릭, 탭 숨기기. 다시 집중하려면 위젯에서이어서를 누르세요.
타이머는 사용자가 까먹어도 알아서 처리해 줍니다.
남은 시간이 0초가 되면 알아서 종료되고, 위젯 자리에 완료 카드가 뜹니다. ("{N}분 공부 완료 / 오늘 배운 걸 정리해볼까요?" + 정리하기 / 닫기 버튼)

정리하기 → 새 글 작성 화면으로 이동합니다. 방금 한 공부를 바로 글로 남기기에 자연스럽습니다.닫기 → 카드를 닫고 다시 idle 상태로 돌아갑니다.💡 30초 안에 닫지 않으면 30초 뒤 자동으로 사라집니다.
⚠️ 완료 카드는 자연 종료(시간 끝까지 도달) 시에는 항상 뜨지만, 사용자가 직접
종료로 끊은 경우엔 누적 시간이 선택한 시간의 절반(50%) 이상일 때만 표시됩니다. 5분짜리 세션을 1분 만에 끄면 카드 없이 그냥 idle로 돌아갑니다.
브라우저와 OS 알림 권한을 허용하셨다면 Develog 로고와 함께 알림이 뜹니다:
Develog · 5분 뒤 자동 종료이대로 두면 세션이 끝나요. 더 하시려면 연장 버튼을 눌러주세요.Develog · 1분 뒤 자동 종료지금 연장을 누르지 않으면 그대로 종료됩니다.집중하느라 시계 못 봐도 되도록 "연장하지 않으면 종료된다" 는 점을 명확히 알려드립니다.
브라우저를 닫거나 새로고침해도 세션은 서버에 살아 있습니다. 다시 들어오시면 같은 세션이 이어집니다(자동으로 일시정지된 상태로 복원됩니다 — 다시 이어서 만 누르시면 됩니다). 복원 시 우측 상단에 "일시정지된 세션이 있어요. 이어서 누르면 재개됩니다" 토스트가 한 번 뜹니다.
랩탑을 닫거나 인터넷이 끊겨서 60초 이상 신호가 안 오면, 서버가 그 시점까지만 누적해두고 자동으로 일시정지 상태로 돌립니다. → 다시 들어오시면 그 지점에서 이어 갑니다.
세션이 시작된 지 6시간이 지나면 자동으로 정리됩니다. (밤새 켜놓고 잊어버린 경우 대비)
💡 6시간은 "자동 종료 트리거"이지 "기록되는 시간"이 아닙니다. 누적 시간은 항상 선택한 시간(
selectedDurationMs, 최대 180분)까지로 cap 되며, 자동 종료된다고 6시간이 통째로 히트맵에 들어가는 일은 없습니다.
같은 계정으로 여러 탭을 열어둬도 하나의 세션으로 동작합니다.
⚠️ 단: 새로운 세션을 두 탭에서 동시에
시작누르면 한 탭은 "이미 진행 중인 세션이 있습니다" 메시지가 뜹니다. (의도된 동작 — 한 사람당 한 세션)
/@내아이디 프로필 → 히트맵 타일에 공부 시간에 따라 색 점이 찍힙니다.
| 점 색 | 그날 공부 시간 |
|---|---|
| 🟡 주황 | 1시간 미만 |
| 🟠 적주황 | 1~2시간 |
| 🔴 빨강 | 2시간 이상 |
⚠️ 1분 미만은 점이 안 찍힙니다. 자세한 이유는 아래 「오류 같지만 의도된 동작」 섹션 사례 1을 참고하세요.

fm-orange-50) — 그 시간대에 진행한 작업 모드(work) 세션fm-red-50) — 잠금 모드(lock) 세션 (다이얼 활성 색과 동일한 톤으로 "강한 집중" 시각화)Esc 로 닫습니다💡 언제 타임테이블이 필요할까요?
- "그날 정말 몇 시부터 몇 시까지 집중했지?" 자기 돌아보기
- 잘 풀린 날의 시간대 패턴 찾기 (아침형 / 저녁형 자기 인지)
- 공부 직후 발행한 글과 시간 매칭
| 항목 | 정책 |
|---|---|
| 다이얼 선택 범위 | 1분 ~ 60분 (시작 시점) |
| 최대 세션 길이 | 180분 (3시간) — 연장으로만 도달 |
| 연장 단위 | +10분 (남은 시간 < 5분일 때 버튼 노출) |
| 자동 종료 | 시작 후 6시간 |
| 자동 일시정지(grace) | 60초 이상 신호 없을 때 |
| 시간대 기준 | 한국 시간(KST) — 자정을 넘긴 segment는 일자별로 분배됨 |
| 세션당 최대 segment 수 | 100개 (일시정지·재개 반복 한도) |
| 누적 상한 | 선택한 시간까지만 |
| 히트맵 점 최소 임계 | 1분 (그 미만은 색 점 없음) |
| segment 최소 임계 | 10초 (그 미만 단편은 노이즈로 보고 제외) |
Focus Timer를 쓰다 보면 "어? 이거 버그 아닌가?" 싶은 순간이 옵니다. 대부분은 시간 기록이 망가지지 않도록 설계된 안전장치입니다. 자주 묻는 7가지를 모아두니, 비슷한 상황이 오시면 여기로 돌아오세요.
증상: 타이머로 30초 ~ 1분 정도 짧게 돌렸는데, 새로고침해도 히트맵에 색 점이 안 보입니다. 타임테이블 모달을 열면 segment는 보이는데 색 점만 없어요.
원인 — 의도된 정책입니다.
히트맵의 점은 "유의미한 공부 시간" 을 보여주기 위한 시각화라서, 다음 임계치를 따릅니다.
1분 미만 → 점 없음 (level 0)
1시간 미만 → 🟡 주황 점 (level 1)
1~2시간 → 🟠 적주황 점 (level 2)
2시간 이상 → 🔴 빨강 점 (level 3)
왜 1분 미만은 제외하나요?
확인하는 법
💡 테스트하실 때는 1분 이상 돌려보세요. 그러면 즉시 색 점이 표시됩니다.
증상: 시작 → 5초 만에 일시정지 → 다시 시작 → 5초 만에 일시정지. 이걸 반복했는데 누적 시간이 그대로입니다.
원인 — 10초 미만 segment 제외 정책.
왜 이렇게?
시나리오로 보기
| 행동 | 누적 시간 |
|---|---|
| 시작 → 30분 공부 → 일시정지 → 즉시 종료 | 30분 ✅ |
| 시작 → 30분 공부 → 일시정지 → 재개 → 5초 후 종료 | 30분 (마지막 5초만 무시) |
| 시작 → 5초 만에 종료 | 0분 (해당 단편 삭제) |
💡 30초 이상 진행하시면 누락 없이 누적됩니다.
증상: 60분 세션을 시작했는데 한참 빠져서 1시간 30분을 했습니다. 누적이 60분에서 멈춰 있습니다.
원인 — 선택한 시간까지만 누적 정책. (cap)
왜 이렇게?
+10분 연장 버튼을 활용해 주세요.💡 마지막 5분이 남으면 +10분 버튼이 자동으로 등장합니다. 부족하다 싶으시면 그때 누르시면 됩니다.
증상: 잠금 모드 중 ESC 키 한 번 눌렀더니 풀스크린 빠지면서 일시정지. 다시 풀스크린에 들어가도 알아서 재개되지 않습니다.
원인 — 의도된 동작입니다.
이어서 버튼을 눌러야 재개됩니다.자동 일시정지가 일어나는 트리거
| 트리거 | pause | fullscreenExits 카운트 |
|---|---|---|
ESC / F11 등으로 풀스크린 해제 | ✅ | ✅ +1 |
Cmd+Tab (macOS) / Alt+Tab (Windows) | ✅ | — |
| 다른 모니터 / 다른 창 클릭 | ✅ | — |
브라우저 탭 전환 (visibilitychange) | ✅ | — |
⚠️
fullscreenExits카운트는 풀스크린이 실제로 해제될 때(ESC 등)만 +1 됩니다. Cmd+Tab 같은 OS 레벨 앱 전환은 풀스크린 상태는 그대로라 카운트와 별개로 일시정지만 됩니다. (추후 집중 품질 지표로 활용 예정)
💡 끊기는 게 싫으시다면 잠금 모드 대신 작업 모드 를 쓰세요. 작업 모드는 다른 탭 가도 멈추지 않습니다.
증상: 잠깐 자리 비우려고 노트북을 덮었다가 30분 뒤에 열었더니 타이머가 일시정지 상태입니다. 그동안의 시간은 안 흘렀고요.
원인 — heartbeat grace 정책.
왜 이렇게?
시나리오
| 상황 | 누적 결과 |
|---|---|
| 9:00 시작 → 9:30 노트북 덮음 → 10:00 다시 옴 | 30분 누적 (덮은 30분은 빠짐) |
| 9:00 시작 → 9:30 자리 비움(노트북은 켜둠) → 10:00 복귀 | 60분 (정상 카운트) |
💡 잠깐 자리 비우신다면 노트북을 켜두고 가시거나, 명시적으로
일시정지한 뒤에 다녀오세요.
증상: 자정을 넘긴 세션이 있을 때, 히트맵·타임테이블에 어느 날짜로 표시되는지 헷갈립니다.
원인 — 자정 분배 정책 (의도됨).
기준 시간대는 KST (한국 시간). 해외에서 접속하셔도 한국 자정을 기준으로 분배합니다. 그래야 한 사용자의 기록이 이동 중에도 일관되게 보입니다.
💡 타임테이블 모달은 하루 단위 (0시~24시 KST)로 자르므로, 자정 직전의 세션은 두 날의 모달에 각각 보일 수 있습니다.
증상: 두 개의 탭 모두 Develog가 열려 있는 상태. A 탭에서 새 세션을 시작했는데, B 탭에서 시작 버튼을 누르려고 보니 이미 같은 타이머가 동기화되어 보이고, 만약 그래도 새로 시작을 시도하면 "이미 진행 중인 세션이 있습니다" 토스트가 뜹니다.
원인 — 한 계정당 동시 세션 1개 정책.
그러면 두 탭에서 동시에 일시정지 누르면 어떻게 되나요?
💡 노트북 · 모니터 두 개 쓰셔도 좋습니다 — 한 세션이 두 화면에서 동시에 보이는 형태로 동작합니다.
위젯을 드래그한 위치는 자동 저장됩니다. 모니터 해상도가 바뀌어도 화면 안쪽으로 자동 보정됩니다.
직전 세션에서 60분 · 잠금 모드를 골랐다면, 다음에 위젯을 열어도 60분 · 잠금이 기본 선택입니다. 매번 다시 고르지 않아도 됩니다.
밤에 다크 모드로 한 번 바꾸면 다음에도 다크로 시작됩니다.
작업 모드 사용 중 글을 읽거나 새 글을 쓰셔도 타이머는 멈추지 않습니다. 잠금 모드는 그 반대(풀스크린 이탈 = 즉시 일시정지)입니다.
■ 버튼 → "정말 종료할까요?" → 종료 한 번 더 누름. 한 번 누르고 5초 안에 두 번째를 안 누르면 자동으로 취소됩니다. (실수 방지)
작업 모드는 패널 우상단에 X 버튼이 있어 펼친 패널을 다시 FAB로 접을 수 있습니다. 잠금 모드는 X 버튼이 사라집니다 — 강한 집중을 위해 패널이 항상 펼쳐진 상태로 유지됩니다.
위젯 자체는 데스크톱(768px 이상)에서 보입니다. 모바일 전용 UI는 추후 추가 예정입니다.
세션 ID, 시작 시각, 일시정지 / 재개 / 종료 시각, 모드, 풀스크린 이탈 횟수까지 전부 서버에 저장됩니다. 새로고침해도 그대로입니다.
네, 일시정지 상태는 6시간 자동종료 한도 안에서는 무기한 유지됩니다.
60초 이상 신호가 끊긴 시점까지 누적이 보존되고, 다음에 접속하시면 일시정지 상태로 복원됩니다.
10초 미만 단편은 클릭 노이즈로 보고 제외합니다. 30초 이상 공부하셨다면 누적됩니다. 자세한 동작은 사례 2 참고.
다음 순서로 확인해 주세요.
종료까지 갔나요? 일시정지 상태는 히트맵에 안 들어갑니다.Focus Timer의 모든 "이상한 동작" 은 결국 두 가지 원칙에서 나옵니다.
이 두 원칙을 알고 계시면, 앞으로 만나실 모든 케이스가 "아, 그래서 그렇구나" 로 정리됩니다.
정리하기 버튼을 적극 사용하세요. 공부 직후 5분 내 작성한 글이 가장 정확하고 풍부합니다.📖 develog 전체 시리즈 → develog 사용가이드 시리즈
기록이 쌓이면 실력이 보입니다. Develog는 여러분의 배움과 성장의 흔적을 한 곳에 축적하고, 성장 곡선을 시각적으로 보여주기 위한 블로그입니다. --- 1. 왜 Develog를 쓰나요? 일하면서, 공부하면서 배운 내용을 그냥 노션이나 메모장에 적어두면, 시간이 지나면 흩어집니다. Develog는 이 세 가지를 해결합니다.

처음 가입할 때 자동 생성된 아이디가 마음에 안 들거나, 활동명을 바꾸고 싶을 때를 위해 사용자명을 직접 바꿀 수 있는 기능을 추가했습니다.

AI가 글을 대신 써주는 시대에, 우리는 왜 더 자주 써야 할까. 블로그는 정보 저장소가 아니라, 나를 설명하는 가장 현실적인 방법이 되었다. --- 이 글은 이런 분들을 위해 썼습니다 - 부트캠프·학부 종료 후 취업이 걱정 이신 분 - 이력서나 자기소개 칸 앞에서 "뭐라고 써야 하지" 한참 멈춰 본 적 있는 분 - AI가 점점 잘하는 시대에 "내가 할 줄