Files
sodalive-backend-spring-boot/docs/20260309_푸시딥링크파라미터추가.md

1.8 KiB

  • FCM 푸시 생성 경로에서 딥링크 파라미터 추가 위치 확정
  • server.env 기반 URI scheme(voiceon://, voiceon-test://) 분기 로직 구현
  • deep_link_value 매핑 규칙(live, channel, content, series, audition, community) 반영
  • FCM payload에 최종 딥링크 문자열({URISCHEME}://{deep_link_value}/{ID}) 주입
  • 관련 테스트/검증 수행 후 결과 기록

검증 기록

1차 구현

  • 무엇을: FCM 이벤트에 딥링크 메타(deepLinkValue, deepLinkId)를 추가하고, FcmService에서 deep_link payload({URISCHEME}://{deep_link_value}/{ID})를 생성하도록 구현했다.
  • 왜: 푸시 수신 시 앱이 직접 딥링크로 진입하도록 서버에서 일관된 규칙으로 URL을 포함하기 위해서다.
  • 어떻게:
    • ./gradlew test 실행(성공)
    • ./gradlew build 실행(초기 실패: import 정렬 ktlint 위반)
    • ./gradlew ktlintFormat 실행(성공)
    • ./gradlew test && ./gradlew build 재실행(성공)
    • LSP 진단은 Kotlin LSP 미구성 환경으로 실행 불가(Gradle 컴파일/테스트/ktlint로 대체 검증)

2차 수정

  • 무엇을: 오디션 푸시의 deepLinkId-1 대체값이 아닌 실제 audition.id nullable 값으로 조정했다.
  • 왜: ID가 null일 때 비정상 딥링크(/audition/-1)가 생성되는 가능성을 제거하기 위해서다.
  • 어떻게:
    • ./gradlew test && ./gradlew build 실행(성공)

3차 수정

  • 무엇을: server.env 값 해석 기준을 voiceon(프로덕션), voiceon_test 및 그 외(개발/기타)로 조정했다.
  • 왜: 실제 운영 환경 변수 규칙과 딥링크 URI scheme 선택 조건을 일치시키기 위해서다.
  • 어떻게:
    • ./gradlew test && ./gradlew build 실행(성공)