황총무의 실험실

🌙
개발 일지

야근 계산기 — 복잡한 보상휴가 규정을 자동으로

2025-06-20

야근과 보상휴가

야근을 하면 보상휴가를 받을 수 있지만, 계산이 생각보다 복잡합니다. 밤 10시 이전과 이후의 보상 배율이 다르고, 누적 기준 시간을 넘겨야 보상이 시작되는 규정도 있습니다. 매번 엑셀을 열어 계산하는 건 번거로운 일이었습니다.

두 가지 계산 규칙

  • 누적 기준 규칙 — 야근 시간이 15시간을 넘어야 보상이 시작됩니다. 10시 이전은 1.5배, 10시 이후는 2배로 환산합니다.
  • 시간대 기준 규칙 — 오후 6시 30분부터 모든 시간을 1.5배로 환산하며, 10분 단위로 반올림합니다.

핵심 기능

  • 10시 전/후 시간을 따로 입력하면 배율에 따라 보상휴가 일수를 자동 계산합니다.
  • 0.25일(2시간) 단위로 보상휴가가 산정되며, 다음 단계까지 남은 시간도 보여줍니다.
  • 월별 기록을 캘린더 형태로 관리할 수 있습니다.
  • 개인 기록(IndexedDB)과 공유 방(서버) 두 가지 모드를 지원합니다.

구현 포인트

보상휴가 규정은 회사마다 다를 수 있어서, 계산 규칙을 상수로 분리해 쉽게 변경할 수 있도록 설계했습니다. 복잡한 시간 환산 로직을 유틸 함수로 추출하고, 입력값이 바뀔 때마다 실시간으로 결과가 갱신되도록 구현했습니다.

가장 신경 쓴 부분은 '다음 보상휴가까지 남은 시간' 표시입니다. 단순히 현재 보상 일수만 보여주면 동기부여가 약하지만, "2시간 30분만 더 하면 0.25일 추가!" 같은 정보가 있으면 사용자 경험이 확 달라집니다.

황총무의 실험실