Skip to content

[fix] 모바일 앱에서 앱스토어 배너/팝업 링크 이동 안되는 문제 수정#1041

Merged
seongwon030 merged 5 commits intodevelop-fefrom
fix/#1040-mobile-app-store-link-MOA-519
Jan 15, 2026
Merged

[fix] 모바일 앱에서 앱스토어 배너/팝업 링크 이동 안되는 문제 수정#1041
seongwon030 merged 5 commits intodevelop-fefrom
fix/#1040-mobile-app-store-link-MOA-519

Conversation

@seongwon030
Copy link
Member

@seongwon030 seongwon030 commented Jan 14, 2026

#️⃣연관된 이슈

ex) #이슈번호, #이슈번호

📝작업 내용

문제

  • 모바일 앱(웹뷰)에서 배너/팝업 클릭 시 앱스토어로 이동하지 않는 문제
  • 팝업 닫기 후 새로고침하면 다시 뜨는 문제

1. iPhone 앱스토어 링크 HTTPS로 변경

  • 원인: 웹뷰에서 itms-apps:// URL scheme이 차단됨
  • 해결: iPhone은 https://apps.apple.com 링크 사용
  • iPad, iPod, Mac은 기존 itms-apps:// 딥링크 유지
  • 바뀐 코드에 따라 단위테스트 변경

2. 팝업 닫기 시 sessionStorage 저장

  • "닫기" 버튼 클릭 시 세션 동안 재노출 방지
  • "다시 보지 않기"는 기존대로 localStorage 7일 유지

중점적으로 리뷰받고 싶은 부분(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

논의하고 싶은 부분(선택)

논의하고 싶은 부분이 있다면 작성해주세요.

🫡 참고사항

Summary by CodeRabbit

릴리스 노트

  • 업데이트
    • iOS 앱 스토어 링크 구성이 분리되어 iPhone용 HTTPS 링크와 iPad/iPod/Mac용 Apple 딥링크가 각각 제공됩니다. Android 및 기본 링크 동작은 유지됩니다.
  • 새 기능
    • 메인 페이지 팝업이 세션 단위로 닫힌 상태를 기억하도록 변경되어 동일 세션 내 재노출을 방지합니다.

✏️ Tip: You can customize this high-level summary in your review settings.

- Swiper 클릭 이벤트 차단 옵션 비활성화
- 터치 관련 CSS 속성 추가 (touch-action, pointer-events)
- Popup 링크 이동 방식 window.open → location.href 변경
- 디버깅용 콘솔 로그 추가
@vercel
Copy link

vercel bot commented Jan 14, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
moadong Ready Ready Preview, Comment Jan 14, 2026 4:25pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 14, 2026

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Invalid regex pattern for base branch. Received: "**" at "reviews.auto_review.base_branches[0]"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

앱 스토어 링크 매핑을 APP_STORE_LINKS에 iphone(https)와 apple(itms-apps)로 분리하고, getAppStoreLink의 플랫폼 라우팅을 iPhone / iPad/iPod/Macintosh로 분리해 각각 다른 링크를 반환하도록 변경했습니다. Popup 컴포넌트는 세션키(mainpage_popup_closed)를 도입해 닫기 상태를 저장합니다.

Changes

Cohort / File(s) 변경 요약
앱 스토어 링크 유틸리티
frontend/src/utils/appStoreLink.ts, frontend/src/utils/appStoreLink.test.ts
APP_STORE_LINKS에서 ios를 제거하고 iphone(HTTPS)과 apple(itms-apps)을 추가. getAppStoreLink 로직을 iPhone → iphone, iPad/iPod/Macintosh → apple로 분기하도록 변경. 관련 단위테스트 업데이트.
메인페이지 팝업
frontend/src/pages/MainPage/components/Popup/Popup.tsx
POPUP_SESSION_KEY(mainpage_popup_closed) 상수 추가. 팝업 닫기 시 세션스토리지에 기록하도록 isPopupHidden/handleClose 로직 수정.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Possibly related PRs

Suggested labels

💻 FE, 🛠Fix

Suggested reviewers

  • oesnuj
  • lepitaaar
  • suhyun113

업데이트된 기존 섹션

개요

앱 스토어 링크 상수를 구조적으로 분리하여 iPhone용 HTTPS 링크(iphone)와 iPad/iPod/Mac용 itms-apps 딥링크(apple)를 추가했습니다. 또한 팝업 닫기 상태를 세션스토리지에 기록하는 POPUP_SESSION_KEY(mainpage_popup_closed)를 도입했습니다. 공개 API의 함수명(getAppStoreLink)은 유지되나 APP_STORE_LINKS의 공개 속성명이 변경되었습니다(iosiphone, apple 추가).

변경 사항

분류 / 파일 변경 요약
앱 스토어 링크 변경
frontend/src/utils/appStoreLink.ts, frontend/src/utils/appStoreLink.test.ts
APP_STORE_LINKS에서 ios를 제거하고 iphone(HTTPS)과 apple(itms-apps)을 추가. getAppStoreLink의 플랫폼별 라우팅을 iPhone / iPad/iPod/Macintosh로 분리. 단위테스트 업데이트.
팝업 세션 키 추가
frontend/src/pages/MainPage/components/Popup/Popup.tsx
POPUP_SESSION_KEY(mainpage_popup_closed) 추가 및 닫기 동작에서 세션스토리지에 기록하도록 변경.

예상 코드 리뷰 난이도

🎯 3 (Moderate) | ⏱️ ~20 분

관련 이슈

관련 PR

추천 레이블

💻 FE, 🛠Fix

추천 리뷰어

  • lepitaaar
  • suhyun113
  • oesnuj
🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Out of Scope Changes check ❓ Inconclusive 팝업 세션 저장소 기능(Popup.tsx의 POPUP_SESSION_KEY)은 MOA-519의 주요 목표인 '앱스토어 링크 문제 해결'과의 직접적인 관련성이 명확하지 않습니다. 팝업 세션 저장소 기능이 앱스토어 링크 문제 해결과 어떤 관계가 있는지 설명하거나, 별도의 PR로 분리하는 것을 고려하세요.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed 변경 사항이 MOA-519의 목표인 '모바일에서 앱스토어 링크로 넘어가지 않는 문제 해결'을 충족합니다. iPhone은 HTTPS 링크로 변경하고 다른 기기는 기존 딥링크를 유지하는 로직이 구현되었습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경 사항의 주요 목표를 정확하게 설명합니다. 모바일 앱에서 앱스토어 배너/팝업 링크 이동 문제 수정이라는 내용이 구현된 변경 사항(앱스토어 링크 처리 개선, 팝업 세션 관리)과 일치합니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- iPhone: https://apps.apple.com 링크 사용 (웹뷰에서 작동)
- iPad, iPod, Mac: itms-apps:// 딥링크 유지
- 관련 테스트 코드 업데이트
- 닫기/배경 클릭 시 sessionStorage에 저장
- 다시 보지 않기는 기존대로 localStorage 7일 유지
@seongwon030 seongwon030 added 💻 FE Frontend 🛠Fix 기능이 의도한 대로 동작하지 않는 버그를 수정 🚀 hotfix 즉시 릴리즈할 부분 labels Jan 14, 2026
@seongwon030 seongwon030 changed the title fix: 모바일 웹뷰에서 배너/팝업 터치 이벤트 미작동 문제 수정 [fix] 모바일 앱에서 앱스토어 배너/팝업 링크 이동 안되는 문제 수정 Jan 14, 2026
Copy link
Collaborator

@suhyun113 suhyun113 left a comment

Choose a reason for hiding this comment

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

사용해보니 기존에는 팝업 닫기 버튼을 클릭해도 상세페이지를 나올 때마다 다시 노출되어 불편했는데, 이번 수정으로 닫기 버튼을 클릭 시 같은 세션에서는 팝업이 뜨지 않도록 개선된 점이 좋은 것 같습니다!

콘솔에서 sessionStoragelocalStorage 값을 직접 조작하며 각 케이스를 테스트해봤습니다. 테스트 해보니, '닫기' 버튼을 클릭한 경우 세션 만료 후에 팝업이 정상적으로 다시 노출되고, '다시 보지 않기' 버튼을 클릭한 경우에도 7일 경과 후 재노출이 잘 동작하는 것 같습니다!
수고 많으셨습니다~🤗

@seongwon030 seongwon030 merged commit b8e8681 into develop-fe Jan 15, 2026
3 checks passed
@seongwon030 seongwon030 deleted the fix/#1040-mobile-app-store-link-MOA-519 branch January 15, 2026 03:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💻 FE Frontend 🛠Fix 기능이 의도한 대로 동작하지 않는 버그를 수정 🚀 hotfix 즉시 릴리즈할 부분

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[fix] MOA-519 모바일에서 앱스토어 링크로 넘어가지 않는 문제를 해결한다

2 participants

Comments