개발 slecs

포인트 소멸 알림 푸시 발송

목차

포인트 소멸 알림 발송 기능 추가

2026-03-30에 알림(푸시/FCM) 관련 기능을 추가하거나 개선했음.

FCM(Firebase Cloud Messaging)으로 Android 앱에 푸시 알림을 보내는 구조임. 결제 완료, 잔액 변동, 쿠폰 만료 같은 이벤트에서 알림을 트리거함.

알림 유형

유형 트리거
결제 완료 결제 성공 시
잔액 소멸 예정 만료 N일 전 배치
운영 공지 관리자 발송

FCM 발송은 비동기로 처리해서 메인 트랜잭션에 영향을 주지 않게 했음. 알림 발송 실패가 결제 처리 자체에 영향을 주면 안 됨.

FCM 재시도 로직도 붙어 있음. 일시적 네트워크 오류나 FCM 서버 이슈로 실패한 경우 재시도하는 배치가 주기적으로 실행됨.

작업 규모는 크지 않았지만 운영 안정성을 위한 필요한 변경이었음. 이런 작은 수정들이 쌓여서 전체 시스템의 신뢰도를 높임.

Android 알림 수신 서비스 구조

NotificationListenerService는 시스템이 재시작하면 자동으로 종료될 수 있음. START_STICKY를 반환해서 시스템이 강제 종료해도 재시작하도록 처리함.

Android 13+부터 알림 권한이 런타임 요청으로 바뀌어서 앱 최초 실행 시 권한 요청 다이얼로그를 보여주는 로직이 필요함.

배포 채널이 구글 플레이가 아닌 직접 APK 배포라서 자체 업데이트 체크 로직을 서버 API로 구현해둔 상태임.

MediaProjection Android 14+ 이슈

Android 14부터 MediaProjection을 재사용하려면 기존 세션을 명시적으로 종료하고 새로 요청해야 함. 이전 버전에서 쓰던 인스턴스 재사용 방식이 14+에서 크래시를 일으킴.

버전 체크로 분기해서 처리하거나, 아예 매번 새로 요청하는 방식으로 통일하는 게 안전함.

다음

댓글 0

첫 댓글 달아줘.