Subscriptly - 반복 지출 관리

Subscriptly는 구독과 반복 지출을 관리하는 iOS 앱입니다. 날짜와 통화 계산, 데이터 가져오기, 백업과 복구, 기기 내 저장과 사용자 iCloud 계정 동기화 선택을 정확하게 처리하는 데 초점을 맞췄습니다.

개발 중 내부 TestFlight · 개발 중 소스 비공개 · 내부 TestFlight 전용
  • SwiftUI
  • SwiftData
  • CloudKit
  • Kotlin Multiplatform
  • 정확한 금액
  • 백업·복구

Swift 검증

374개 테스트

최근 검토한 저장소 스냅샷의 46개 스위트에 걸쳐 있습니다.

공유 코어 검증

247개 검사

JVM과 iOS Simulator arm64 대상에서 각각 실행합니다.

UI 릴리스 검사

9개 테스트

보기 좋은 커버리지 수치보다 릴리스 핵심 흐름에 집중했습니다.

배포 상태

내부 TestFlight

공개 베타도, App Store 출시도 아닙니다.

제품에서 정말 어려운 부분

반복 결제는 경계 상황에서 복잡해집니다. 월말에 가까운 갱신 기준일, 오차가 생기면 안 되는 환율 계산, 금액과 이력을 그대로 보존해야 하는 복구 흐름이 그 예입니다.

이 규칙은 화면마다 따로 구현하지 않고 도메인 모델에 담았습니다. 공유 Kotlin 코어가 청구 규칙을 처리하고, UI와 로컬 저장소, 선택형 iCloud 동기화는 Apple 플랫폼 방식으로 구현했습니다.

제품을 지탱하는 설계 결정

금액은 정확하게 유지

금액을 정수 최소 화폐 단위로 저장하고 통화를 명시적으로 처리해 청구 로직에서 부동소수점 값을 피했습니다.

청구일은 달력 값으로 처리

기준일 기반 갱신과 시간대 없는 달력 날짜를 사용해, 기기가 시간대를 바꿔도 청구일이 달라지지 않게 했습니다.

복구를 사용자가 보는 흐름으로 설계

백업, 복원, 충돌 처리, 로컬 저장과 iCloud 동기화 선택을 사용자가 직접 이해하고 선택할 수 있는 제품 흐름으로 만들었습니다.

검토 가능한 근거

채용 검토에서는 소스 저장소를 비공개로 유지하면서 제품 규칙과 릴리스 검증의 연결을 보여 드릴 수 있습니다.

  • SwiftUI, SwiftData, CloudKit, 공유 KMP 청구 코어 사이의 아키텍처 경계
  • 갱신 기준일, 최소 화폐 단위, 가져오기, 백업, 복원, 충돌 동작 테스트
  • 릴리스를 위한 Swift, Kotlin, UI, 기기 빌드 근거
  • 완성된 크로스플랫폼 제품으로 보이지 않도록 구분한 초기 Android 검증 범위

현재 릴리스 범위

Subscriptly는 충분히 깊이 있는 작업이지만 아직 개발 중인 제품으로 소개합니다.

  • 현재 내부 TestFlight로만 제공하며 공개 TestFlight 페이지는 신규 테스터를 받지 않습니다.
  • App Store 출시, 은행 연결, 자동 은행 동기화, 재무 또는 세무 조언을 주장하지 않습니다.
  • Android는 초기 검증 단계이며 완성된 크로스플랫폼 앱이 아닙니다.
  • 남은 실기기 검증과 CloudKit 다중 기기 수렴은 완료된 것으로 소개하지 않습니다.

비공개 설명 가능

실제 채용 절차에서는 도메인 모델, 아키텍처, 복구 경로, 선별한 테스트 근거를 설명할 수 있습니다. 저장소는 계속 비공개로 유지합니다.