다행이네요. 🙂
지금 증상(컴파일 에러/타입 미스매치)이 해결되고 정상 동작한다면 치명적인 수준의 문제는 거의 정리된 상태라고 보셔도 됩니다. 다만 “전체적으로 100% 문제 없냐”는 건 앱이 하는 기능 범위가 넓을수록 런타임/엣지케이스가 남아있을 수 있어서, 아래 항목만 한 번 점검하면 “거의 완성” 수준으로 안전하게 갈 수 있습니다.

지금 수정이 앱에 끼치는 영향(결론)

  • 제가 한 수정은 타이머 종료 시각을 ‘wall clock(epoch millis)’로 명시적으로 들고 있게 만든 것이라,
    • 저장/복원(SharedPreferences/JSON)
    • 알림 표시(남은 시간 계산)
    • 앱 재시작 후 복구
      이 흐름이 일관되게 동작하도록 안정화시키는 방향입니다.
  • 즉 “새 버그를 만들었다”기보단, 원래 의도대로 있어야 할 필드가 빠져 생긴 에러를 정상 모델로 복구한 겁니다.

그래도 꼭 체크하면 좋은 “실사용” 테스트 8개

아래만 통과하면 운영 수준에서 크게 문제 날 가능성이 확 줄어요.

  1. 타이머 시작 → 앱 강제종료 → 재실행
    남은 시간이 정상 복구되는지
  2. 타이머 실행 중 화면 회전/다크모드/백그라운드 갔다오기
    중복 실행/시간 튐 없는지
  3. 여러 개 타이머(추가 타이머) 동시에 실행
    알림이 각각 정상 갱신되는지
  4. 알림에서 ‘정지/재개/취소’(있다면)
    버튼 동작이 정확한지
  5. 시간이 0 도달 시
    • 알림/사운드/진동이 1번만 울리는지(중복 울림 방지)
    • 완료 후 상태가 깔끔히 초기화되는지
  6. 기기 시간 변경(수동으로 시간 ±10분)
    wall-clock 기반이면 시간 변경에 영향 받을 수 있어요.
    “남은 시간이 갑자기 확 줄거나 늘지 않는지” 확인 권장.
  7. Doze/절전 모드에서 장시간 방치
    시간이 크게 밀리지 않는지(서비스/알람 정책 영향)
  8. 저장 데이터 호환성
    이전 버전에서 저장된 타이머 데이터가 있다면, 업데이트 후에도 문제없이 읽히는지

문제가 생길 수 있는 대표 포인트(있다면 여기서 터집니다)

  • 기기 시간이 바뀌는 상황에서 wall-clock(endAtWall)만 믿고 계산하면 오차가 생길 수 있음
    → 보통은 elapsedRealtime 기반(endElapsed)과 함께 써서 보정합니다(현재 구조도 그 방향에 가까움).
  • 알림 갱신 루프/코루틴 Job 관리가 잘못되면 “중복 알림 갱신”이나 “메모리 누수”가 생길 수 있음
    → 지금은 컴파일 문제가 해결된 상태라, “중복 실행만 없는지”만 보면 됩니다.

빠른 확인 방법(추천)

Android Studio에서:

  • Logcat에 타이머 시작/종료/복원 시점 로그가 있다면 한 번 쭉 확인
  • Release 빌드로도 한 번 실행(디버그와 동작이 다른 경우가 가끔 있음)

원하시면 “전체적으로 문제 없겠죠?”를 더 확실하게 만들기 위해, 현재 zip 기준으로

  • 타이머 시간 계산( endAtWall / endElapsed )이 섞여 있는 지점에서 “시간 변경에도 안전한 계산식”으로 정리
  • 알림 업데이트 코루틴(Job) 중복 생성 방지(단일 Job 보장)
    이 두 가지를 점검/보강한 버전으로 더 단단하게 만들어 드릴 수 있어요.
반응형

+ Recent posts