30 lines
1.8 KiB
Markdown
30 lines
1.8 KiB
Markdown
- [x] FCM 푸시 생성 경로에서 딥링크 파라미터 추가 위치 확정
|
|
- [x] `server.env` 기반 URI scheme(`voiceon://`, `voiceon-test://`) 분기 로직 구현
|
|
- [x] `deep_link_value` 매핑 규칙(`live`, `channel`, `content`, `series`, `audition`, `community`) 반영
|
|
- [x] FCM payload에 최종 딥링크 문자열(`{URISCHEME}://{deep_link_value}/{ID}`) 주입
|
|
- [x] 관련 테스트/검증 수행 후 결과 기록
|
|
|
|
## 검증 기록
|
|
|
|
### 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` 실행(성공)
|