dev.jihun.io 블로그
프로젝트 목록

2025. 07. - · 출시 준비 중

몇퇴

유연근무자의 출근을 자동으로 기록하고 퇴근 시각을 놓치지 않게 알려 주는 앱

몇퇴의 메인 화면, 위젯 추가 화면, 설정 화면을 나란히 놓은 이미지
출근 기록과 예상 퇴근 시각, 위젯, 출근 기록 방식 설정을 한눈에 모았습니다.

배경과 목적

“몇 시 퇴근이세요?” 유연근무제에서는 출근 시각에 따라 퇴근 시각이 달라져, 매일 직접 계산해야 합니다. 몇퇴는 회사 지오펜스로 출근을 자동으로 기록하고, 위젯과 Live Activity로 남은 시간을 보여 주는 앱입니다. 소중한 퇴근 시간을 놓치지 않게 하는 것이 목표이고, 고정근무제와 백업·복원까지 기능을 넓혀 왔습니다.

담당 범위

기획과 디자인, React Native 앱과 iOS·Android 네이티브 모듈, Cloudflare Workers 서버까지 혼자 만들고 있습니다. 지금은 스토어 출시를 준비하고 있습니다.

핵심 작업

  • 앱이 꺼져 있어도 오는 퇴근 알림: 회사에 도착하면 로컬 대체 알림을 먼저 예약하고, 발송 5분 전에 서버로 책임을 넘깁니다. ‘정확히 한 번’ 대신 ‘누락보다 중복’을 택했고, 그 이유를 설계 문서에 남겼습니다.
  • 종료·재부팅에도 동작하는 지오펜스: Expo만으로는 부족해 Kotlin 네이티브 모듈을 직접 만들었습니다. 이벤트를 먼저 저장하고 WorkManager가 재시도합니다.
  • 세 런타임이 같은 시간 계산을: 앱(TypeScript), 서버(Workers), Kotlin이 서머타임과 자정 넘김 같은 경우를 같은 시간 fixture 7개로 함께 테스트합니다.

결과

출근을 직접 기록하지 않아도, 앱을 열지 않아도 퇴근 시각을 확인하고 알림을 받을 수 있습니다.

화면과 흐름

출근 기록과 위젯

출근 시각과 누적 근무 시간, 예상 퇴근 시각을 보여주는 몇퇴 메인 화면
오늘 출근 기록과 예상 퇴근 시각을 첫 화면에서 바로 확인합니다.
퇴근까지 남은 시간과 출근·퇴근 예정 시각을 보여주는 몇퇴 위젯 추가 화면과 Dynamic Island
위젯과 Dynamic Island로 앱을 열지 않고도 퇴근까지 남은 시간을 확인합니다.