본문으로 건너뛰기
배기훈프론트엔드 개발자
← 개인 프로젝트

적립시계

운영 중

월급과 퇴직금이 초 단위로 쌓이는 시계

입사일과 월급만 넣으면 이번 달에 번 월급과 지금까지 쌓인 퇴직금을 실시간으로 보여주는 iOS 앱입니다. 상여금, DC형 퇴직연금, 시급제까지 반영하고, 홈·잠금화면 위젯과 테마 3종을 지원합니다. iPhone, iPad, Mac에서 쓸 수 있습니다.

왜 만들었나

월급은 한 달에 한 번 들어오지만, 사실 일하는 매 순간 쌓이고 있습니다. 퇴직금도 마찬가지인데, 대부분은 퇴사할 때가 돼서야 계산기를 찾아봅니다.

그래서 입사일과 월급만 넣으면 이번 달에 번 월급과 지금까지 쌓인 퇴직금이 초 단위로 올라가는 시계를 만들었습니다. 숫자가 눈앞에서 올라가는 걸 보는 것만으로도 오늘 하루가 조금 다르게 느껴지길 바랐습니다.

할 수 있는 것

  • 이번 달 번 월급: 정산 기간 첫날 0시에 0원에서 시작해 마지막 날 자정에 한 달 치가 모두 쌓입니다. 21일~20일처럼 정산 기간이 다른 회사도 맞출 수 있습니다.
  • 지금까지 쌓인 퇴직금: 입사 1년 전에는 잠금 해제까지 D-day와 진행률을, 1년이 지나면 소수점 둘째 자리까지 실시간 금액과 다음 목표 금액을 보여줍니다.
  • 내 상황에 맞춘 계산: 상여금, 고정수당, 미사용 연차, DC형 퇴직연금, 중간정산, 시급제까지 반영하고, 예상 퇴직소득세도 참고로 보여줍니다.
  • 월급이 바뀌어도: 연봉이 오르면 새 월급과 적용일만 추가하면 날짜에 맞춰 나눠 계산합니다.
  • 축하와 공유: 입사 1주년, 퇴직금 100만 원·1,000만 원 돌파 순간을 축하 화면으로 알리고 카드로 공유할 수 있습니다.
  • 위젯과 책상 위 시계: 홈·잠금화면 위젯으로 앱을 열지 않아도 확인하고, iPhone을 가로로 눕히면 충전 중에는 꺼지지 않는 시계가 됩니다.
  • 테마 3종: 통장, 탁상시계, 플립 테마와 시스템 설정을 따르는 자동 모드를 지원합니다.

고민한 점

저장하지 않고, 매번 새로 계산하기

모든 금액은 f(설정값, 현재 시각)으로 그때그때 새로 계산하고, 누적값은 저장하지 않습니다. 앱을 오래 꺼 두었다가 열어도, 위젯과 앱이 따로 계산해도 언제나 같은 값이 나옵니다. 계산 엔진은 화면과 분리된 순수 함수로 두었습니다.

돈 계산은 끝까지 정확하게

금액은 부동소수점 대신 Decimal로 다루고, 중간에 반올림하지 않고 화면에 보여줄 때만 자릅니다. 날짜는 기기 설정과 관계없이 Asia/Seoul 기준으로 고정해, 해외에 있어도 계산이 달라지지 않습니다.

법과 제도를 조사해서 반영하기

퇴직금은 평균임금, 퇴직연금 유형(DB형·DC형), 중간정산, 5인 미만 사업장, 시급제의 주휴수당과 주 15시간 기준처럼 경우가 많습니다. 법령과 기존 계산기들을 조사해 보고서로 정리하고, 그 근거대로 고급 설정을 만들었습니다. 기본값만 쓰면 가장 단순한 공식 그대로라 처음 쓰는 사람은 두 가지만 입력하면 됩니다.

테스트로 지키는 계산

계산 엔진은 Swift Testing으로 단위 테스트를 작성했고(테스트 189개), PR과 main에 올릴 때마다 GitHub Actions에서 돌립니다. 디버그 빌드에서는 시간을 +1일, +30일, +1년씩 옮겨서 1주년이나 목표 금액 같은 순간을 바로 확인할 수 있게 했습니다.

짧은 주기로 출시하기

2026년 9월 23일에 시작해 10월 2일 App Store에 1.0을 출시했고, 이후 2주 동안 1.3까지 업데이트했습니다. 사용자 정보는 기기 안에만 저장하고, 입력값을 뺀 사용 이벤트만 분석해 다음 개선 방향을 정합니다.

기술 스택

  • 앱: Swift, SwiftUI, Observation
  • 위젯: WidgetKit (홈·잠금화면)
  • 기기: iPhone, iPad, Apple Silicon Mac (Designed for iPad)
  • 분석: PostHog
  • 품질: Swift Testing, XCTest UI 테스트, GitHub Actions, Xcode Cloud

월급은 한 달에 한 번 들어오지만, 사실 매초 쌓이고 있다.