돌아가기

출퇴근 자동화

맥북 잠금해제 시 자동 출근 체크

PlaywrightNode.js

계기

매일 아침 근태 시스템에 로그인해서 출근 버튼을 눌러야 했습니다. 큰일은 아니지만 자리에 앉아 바로 일을 시작하다 보면 자주 까먹었습니다. 생각나면 그제야 급하게 체크하는 일이 반복됐습니다.

자동화 방식

맥북을 열고 잠금을 해제하는 순간이 사실상 출근이라는 점을 이용했습니다. macOS 잠금해제 이벤트를 감지해서, 그때 자동으로 출근 버튼을 누르도록 만들었습니다.

근태 시스템은 Google OAuth로 로그인합니다. 한 번 로그인하면 세션이 꽤 오래 유지되기 때문에, 평소에는 Playwright가 계정 프로필만 선택해도 바로 출근 처리까지 진행됩니다.

예외 처리

문제는 세션 만료였습니다. 세션이 만료된 날에는 프로필 선택만으로 로그인이 끝나지 않았고, 자동화는 조용히 실패했습니다. 저는 당연히 출근이 찍혔다고 생각하고 넘어갔다가 뒤늦게 확인한 적이 있었습니다.

세 가지를 보완했습니다.

  • 세션 만료 대응 — 세션이 풀려 다시 인증이 필요한 경우에도 자동화가 로그인을 끝까지 진행하도록 분기를 추가했습니다. 평소에는 빠른 경로로 처리하고, 세션이 만료됐을 때만 전체 로그인 과정을 탑니다.
  • 알림 채널 변경 — 처음에는 성공/실패 알림을 맥북 시스템 알림으로 띄웠습니다. 그런데 출근 직후에는 다른 알림과 섞여 그냥 지나치기 쉬웠습니다. 그래서 평소에 계속 확인하는 사내 메신저(Google Chat)로 알림을 보내도록 바꿨습니다.
  • 상태 표시 추가 — 제가 메인으로 쓰는 Claude Agent HUD에도 오늘 출근 여부가 보이도록 붙였습니다. 메신저 알림으로 결과를 받고, HUD에서는 현재 상태를 바로 확인할 수 있습니다.

바뀐 점

이제 맥북 잠금을 해제하면 출근이 자동으로 처리됩니다. 자동화가 실패해도 메신저로 바로 알 수 있고, Claude Agent HUD에서 오늘 출근 여부도 바로 확인할 수 있어서 깜빡해서 뒤늦게 출근을 찍는 일이 없어졌습니다.