Todo 앱 사이드 프로젝트를 하면서 집중이 잘 안 된다는 느낌이 들어 포모도로 타이머(25분 집중 + 5분 휴식)를 두 달 정도 써봤습니다. 결론부터 말하면 지금은 쓰지 않습니다. 왜 그만뒀는지, 대신 뭘 쓰고 있는지 정리합니다.

문제 상황

포모도로를 쓰기 전 상태는 이랬습니다. 주말에 노트북을 열고 버그를 하나 잡으려는데, 슬랙 알림이나 다른 생각 때문에 흐름이 자꾸 끊겼습니다. 그날 작업을 손으로 대충 적어보면 이런 식이었습니다.

14:02 - TodoRepository 캐시 무효화 버그 확인 시작
14:11 - 슬랙 알림 확인하러 감
14:14 - 다시 코드 보는데 어디까지 봤는지 기억이 안 남
14:35 - 결국 로그 다시 찍어서 처음부터 재현

한 시간 반 동안 실제로 진전이 있었던 구간은 20분도 안 됐습니다. 집중 시간을 강제로 정해두면 나아질 것 같아서 포모도로를 시작했습니다.

원인 분석

두 달 써보니 다른 문제가 생겼습니다. 타이머가 25분에 울리는 시점이 작업의 논리적인 끊는 지점과 전혀 상관이 없었습니다. 한 번은 캐시 무효화 버그의 원인을 거의 찾아가던 중에 타이머가 울렸습니다.

$ # 25분 타이머 종료 알림
$ # findCacheInvalidationBug()의 로그를 한 줄씩 보며 원인을 좁혀가던 중이었음
$ # 규칙대로 5분 쉬고 돌아왔더니 로그 출력 창을 이미 닫아버림
$ # 결국 로그를 다시 찍고 처음부터 재현

원인은 명확했습니다. 포모도로는 "언제 멈출지"를 시간이 정하지, 작업의 매듭이 정하지 않습니다. 문서 작성이나 이슈 정리처럼 끊어도 되는 작업에는 잘 맞았지만, 디버깅처럼 머릿속 상태를 유지해야 하는 작업에는 오히려 방해가 됐습니다. 25분이라는 숫자 자체도 근거가 있었던 게 아니라 그냥 널리 쓰이는 값을 그대로 가져다 쓴 것뿐이었습니다.

해결 과정

타이머로 강제로 끊는 대신, 시작과 종료 시각만 기록하고 멈추는 시점은 직접 정하기로 했습니다. 알람 없이 로그만 남기는 스크립트를 하나 만들었습니다.

#!/usr/bin/env bash
# worklog.sh - 작업 시작/종료를 기록만 함, 알람 없음
LOGFILE="$HOME/worklog/$(date +%Y-%m-%d).log"
mkdir -p "$HOME/worklog"

case "$1" in
  start)
    echo "$(date +%H:%M:%S) START $2" >> "$LOGFILE"
    ;;
  stop)
    echo "$(date +%H:%M:%S) STOP $2" >> "$LOGFILE"
    ;;
  *)
    echo "usage: worklog.sh {start|stop} <task-name>"
    exit 1
    ;;
esac

사용법은 단순합니다.

$ ./worklog.sh start "캐시 무효화 버그"
$ ./worklog.sh stop "캐시 무효화 버그"
$ cat ~/worklog/2026-08-15.log
14:02:11 START 캐시 무효화 버그
14:41:37 STOP 캐시 무효화 버그

규칙은 하나만 두었습니다. STOP은 커밋이 되거나 테스트가 통과하는 지점에서만 찍습니다. 중간에 딴짓을 하고 싶으면 그냥 하되, 로그에는 남지 않으니 나중에 파일을 보면 실제로 집중했던 구간만 남습니다.

일주일쯤 로그를 쌓고 나서 구간 길이를 계산해봤습니다.

$ awk '/START/{s=$1} /STOP/{split(s,a,":"); split($1,b,":"); print (b[1]*3600+b[2]*60+b[3])-(a[1]*3600+a[2]*60+a[3])"초", $0}' ~/worklog/2026-08-*.log
2366초 14:41:37 STOP 캐시 무효화 버그
912초 09:31:02 STOP 필터 UI 초안
3103초 16:20:11 STOP DataStore 마이그레이션

15분짜리도 있고 50분 넘게 이어진 것도 있었습니다. 25분이라는 고정값이 애초에 제 작업 패턴과 안 맞았다는 게 숫자로 확인됐습니다.

결론

포모도로 자체가 잘못된 방법은 아니지만, 작업 단위가 일정하지 않은 디버깅이나 사이드 프로젝트에는 고정된 25분 간격이 오히려 흐름을 끊었습니다. 지금은 타이머로 강제로 멈추는 대신 시작과 종료만 기록하고, 멈추는 지점은 커밋이나 테스트 통과 같은 논리적 매듭에 맞춥니다. 로그를 보니 평균 30분 정도 몰입했을 때 결과물이 가장 많았다는 것도 알게 됐고, 다음에는 이 기록을 기준으로 회의를 언제 잡을지도 정해볼 생각입니다.