개발 slecs

결제 알림 앱 Android 호환성

목차

APK 관리 로직 및 다운로드 기능 추가

Android 앱(최신버전) 관련 작업을 진행했음.

결제 알림 수신·처리용 앱인데, 알림 캡처 → 파싱 → 서버 전송 흐름으로 동작함. 이번 작업에서는 안정성과 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

첫 댓글 달아줘.