Android 결제 알림 앱 호환성·안정성 개선
목차
v2.0.0: 인증코드 입력 UX 개선 및 버전 업데이트
Android 앱(v2.0.0) 관련 작업을 진행했음.
결제 알림 수신·처리용 앱인데, 알림 캡처 → 파싱 → 서버 전송 흐름으로 동작함. 이번 작업에서는 안정성과 Android 버전 호환성을 중점적으로 개선했음.
주요 변경
| 항목 | 내용 |
|---|---|
| Android 14/15 대응 | MediaProjection API 변경사항 반영 |
| 원격 지원 안정화 | WebSocket 연결 유지 및 재연결 로직 보강 |
| FCM 처리 | 알림 수신 서비스 로직 개선 |
알림 캡처 로직은 NotificationListenerService를 기반으로 하고, 캡처한 텍스트를 정규식으로 파싱해서 금액·은행 정보를 추출함. 파싱 실패 시 AI 폴백으로 재시도하는 구조도 붙어 있음.
Android 버전마다 권한 처리 방식이 달라서, 특히 Android 13+ 이후 알림 권한이 런타임 요청으로 바뀐 부분을 처리하느라 손이 많이 갔음.
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_STICKY
}
배포 시에는 keystore 서명 설정을 로컬 local.properties에 분리해서 레포에 올라가지 않게 관리 중임.
끝
작업 규모는 크지 않았지만 운영 안정성을 위한 필요한 변경이었음. 이런 작은 수정들이 쌓여서 전체 시스템의 신뢰도를 높임.
연락처 송금 안정성 확보 전략
은행 앱 UI는 앱 업데이트마다 바뀔 수 있음. 하드코딩된 셀렉터는 앱 버전이 올라가면 갑자기 동작을 멈춤. 자가학습 캐시 구조가 이 문제를 완화함.
성공한 셀렉터를 DB에 저장해두고, 다음 요청에서는 저장된 셀렉터를 먼저 시도함. 실패하면 전체 탐색으로 폴백하고, 성공한 새 셀렉터를 다시 저장함.
- PENDING: 처리 중
- SUCCESS: 완료
- NO_MATCH: 주문 매칭 실패 → 재시도 큐
- MANUAL_REQUIRED: 자동 처리 불가 → 수동 처리
다음
댓글 0
첫 댓글 달아줘.