Skip to content

feat: 딥링크 기능 구현#147

Merged
MTtankkeo merged 9 commits intomainfrom
deep-link
Jan 20, 2026
Merged

feat: 딥링크 기능 구현#147
MTtankkeo merged 9 commits intomainfrom
deep-link

Conversation

@wonyong-park
Copy link
Member

✨ Description

  • 그리미티 서비스 외부 유입을 위한 딥링크 기능을 구현하였습니다.

📌 구현 내용

  • 딥링크 대상 범위 : 게시글 상세(/posts/:id), 피드 상세(/feeds/:id), 프로필 페이지(/:url)
  • Web, Mobile에서 서비스에서 사용하는 경로(ex. /home)은 예외 처리
  • GoRouter.redirect를 활용하여 처리해야할 링크가 들어온 경우 로그인 여부에 따라(/sign-in or /home)이동 후 딥링크 라우팅 처리

🧪 Deep Link 테스트 시나리오

딥링크 진입 시 앱 상태(Cold Start/Warm Start), 로그인 여부, 유효한 경로 여부 에 따른 라우팅 시나리오입니다.

TC ID 앱 상태 로그인 경로(Path) 예상 동작 (Expected Result)
TC-001 Cold (꺼짐) X 유효함 스플래시 → SignIn 페이지 이동
TC-002 Cold (꺼짐) X 잘못됨 스플래시 → SignIn 페이지 이동
TC-003 Cold (꺼짐) O 유효함 스플래시 → 홈 → 해당 페이지 Push
TC-004 Cold (꺼짐) O 잘못됨 스플래시 → 홈 페이지 이동
TC-005 Warm (켜짐) X 유효함 SignIn 페이지로 이동
TC-006 Warm (켜짐) X 잘못됨 SignIn 페이지로 이동
TC-007 Warm (켜짐) O 유효함 홈 페이지로 이동, 해당 페이지 Push
TC-008 Warm (켜짐) O 잘못됨 홈 페이지로 이동/유지

🌱 Etc

  • 프로필 URL 수정 시 발생하는 오류 수정

- Android, iOS에서 www.grimity.com 도메인에 대한 유니버설 링크 및 앱 링크를 처리하도록 설정을 추가
- Cold Start와 Warm Start를 구분하여 딥링크 처리 로직 구현
- 회원가입 및 프로필 수정에서 특정 URL을 사용할 수 없도록 금지 목록을 추가 및 적용
@gemini-code-assist
Copy link

Summary of Changes

Hello @wonyong-park, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 그리미티 서비스에 딥링크 기능을 도입하여 외부 유입 경로를 확장하고 사용자 경험을 개선하는 데 중점을 둡니다. 앱의 시작 상태와 사용자 로그인 여부에 따라 딥링크를 지능적으로 처리함으로써, 사용자가 외부 링크를 통해 앱 내 특정 콘텐츠에 원활하게 접근할 수 있도록 합니다. 또한, URL 유효성 검증 로직을 강화하고 분석 도구를 라우팅 시스템에 통합하여 서비스의 안정성과 데이터 추적 기능을 향상시킵니다.

Highlights

  • 딥링크 기능 구현: 그리미티 서비스 외부 유입을 위한 딥링크 기능이 구현되었습니다. 게시글 상세, 피드 상세, 프로필 페이지를 딥링크 대상으로 지원하며, Web 및 Mobile에서 사용하는 일부 경로(예: /home)는 예외 처리됩니다.
  • GoRouter.redirect를 활용한 딥링크 처리: GoRouter의 redirect 기능을 활용하여 딥링크 요청 시 앱 상태(Cold Start/Warm Start) 및 로그인 여부에 따라 적절한 페이지(/sign-in 또는 /home)로 이동 후 딥링크 라우팅이 처리됩니다.
  • 딥링크 상태 관리 Provider 추가: 앱 초기화 여부를 추적하는 initializeAppProvider와 처리 대기 중인 딥링크를 관리하는 pendingDeepLinkProvider가 추가되어 딥링크 처리 로직의 견고성을 높였습니다.
  • URL 유효성 검증 로직 개선: 프로필 URL 수정 시 발생하는 오류를 수정하고, ValidatorUtil에 금지된 URL 목록(forbiddenUrls)을 추가하여 URL 유효성 검증 로직을 강화했습니다. 또한, StringExtension을 통해 URL 검증 메시지를 더 명확하게 제공합니다.
  • 라우터 및 분석 도구 통합: Firebase Analytics Observer가 GoRouter에 통합되어 라우팅 이벤트를 자동으로 추적할 수 있게 되었으며, AppRouter가 Riverpod provider로 전환되어 의존성 관리가 용이해졌습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

딥링크 기능 구현을 위한 PR 잘 보았습니다. 전반적으로 Cold/Warm Start 및 로그인 상태에 따른 시나리오를 잘 고려하여 구현하셨습니다. go_routerredirect와 Riverpod provider를 활용한 상태 관리 로직이 인상적입니다. 몇 가지 잠재적인 버그와 개선점에 대한 리뷰 의견을 남겼습니다. 특히 로그인하지 않은 사용자에 대한 딥링크 처리 로직을 중점적으로 확인해 주시면 좋겠습니다. 수정이 필요한 부분은 코드 제안을 함께 추가하였으니 참고해 주세요.

@MTtankkeo MTtankkeo merged commit 30e791d into main Jan 20, 2026
1 check passed
@wonyong-park wonyong-park deleted the deep-link branch February 1, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants