리다이렉트 서버와 FCM 푸시 연동
백엔드
리다이렉트 서버와 FCM 푸시 연동
두줄요약
푸시 클릭·노출 통계를 위해 리다이렉트 서버와 FCM 푸시를 연동하고 로그 적재 구조를 설계했습니다. 웹 푸시 노출은 아이콘 이미지 응답을 활용해 수집하는 방식으로 보완했습니다.
문제 상황
- 푸시 전송 후 클릭·노출 반응을 확인하기 어려워 리텐션 분석에 필요한 통계 수집이 불가한 상태
- 리다이렉트 서버에 클릭 API만 존재해 노출 통계와 확장 요구를 함께 처리할 구조 필요
- 웹 푸시의 노출 로그는 앱과 달리 수집이 어려워 별도 방식 검토 필요
해결 방법
- 리다이렉트 URL 생성 과정에 클릭·노출 구분값을 추가하고 logger 및 logback 설정으로 경로 분리
- 푸시 메세지에 osType 파라미터를 포함해 성공 로그 포맷에 반영
- 웹 푸시 노출은 아이콘 이미지 응답을 활용해 호출 시점에 로그를 적재하는 방식 적용
구조와 흐름
- 푸시 서버가 리다이렉트 URL을 생성해 전송하고, 클릭 시 리다이렉트 서버에서 원본 URL로 되돌리며 로그 적재
- internal 서버가 DynamoDB의 푸시 메타데이터를 조회해 iconUrl을 제공하고 external 서버가 이를 받아 노출 통계에 활용
- fluentd로 성공 로그를 수집한 뒤 DynamoDB에 pushMessageId 기준 클릭·노출 집계 업데이트
적용해볼 점
- 비슷한 API가 추가될 때를 대비한 확장성 고려
- 로그 포맷을 yml로 분리해 파라미터 추가 변경을 단순화
- 프로젝트별 메타데이터와 통계 집계 구조를 분리해 운영 유연성 확보
