Skip to content

[Feat/#455] 착한가격업소 지도 링크 서버 URL 연동 및 이미지 플레이스홀더 - #456

Merged
Hrepay merged 2 commits into
developfrom
feat/#455
Sep 1, 2026
Merged

[Feat/#455] 착한가격업소 지도 링크 서버 URL 연동 및 이미지 플레이스홀더#456
Hrepay merged 2 commits into
developfrom
feat/#455

Conversation

@Hrepay

@Hrepay Hrepay commented Sep 1, 2026

Copy link
Copy Markdown
Member

#️⃣ 관련 이슈

Resolved #455

💡작업 내용

서버가 착한가격업소 상세 응답에 추가한 지도 딥링크 필드를 연동했습니다. (prod 1,459건 반영 완료 공지 대응)

1. 지도 URL 연동

  • GoodPriceStoreDetailDTOnaverMapUrl / kakaoMapUrl(nullable) 추가
  • 상세 응답 도착 시 MapAppLauncher를 서버 URL 포함으로 교체 — 기존 "서버 URL 우선 → 카카오 검색 → 좌표 폴백" 구조를 그대로 타므로 제휴 시트와 동일한 경로로 동작
  • dev 실데이터로 URL 형식 검증: 카카오 place.map.kakao.com/{id} → 앱 스킴 변환, 네이버는 유니버설 링크 직행

2. URL 없는 업소 처리 (dev 기준 네이버 15건 / 카카오 9건)

  • MapAppButtonBarsetKakaoMapEnabled / setNaverMapEnabled 추가
  • 해당 URL이 없는 버튼은 비활성 처리 (알파 0.35 + 탭 무시). 상세 로드 전/실패 시엔 활성 상태로 남아 기존 검색 폴백 동작
  • 제휴 시트는 기본값(활성)이라 영향 없음

3. 이미지 플레이스홀더 (이미지 없는 업소 54건)

  • imageUrl이 없거나 빈 값이면 회색 박스 중앙에 카테고리 아이콘(식당/빵집/카페 핀)을 회색 템플릿으로 표시

💬리뷰 요구사항(선택)

  • URL 없는 업소를 버튼 숨김이 아니라 비활성(흐림) 으로 처리했습니다. 실기기 확인은 신림역 근처 "영원참숯갈비"(네이버만 비활성) / "정 김밥"(카카오만 비활성)에서 가능합니다.
  • 플레이스홀더는 별도 시안이 없어 카테고리 아이콘을 재활용했습니다. 시안이 나오면 교체 예정입니다.

Summary by CodeRabbit

  • 새로운 기능
    • 매장 상세 화면에서 카카오맵과 네이버지도로 이동할 수 있습니다.
    • 각 지도 서비스의 URL이 제공되는 경우에만 해당 버튼이 활성화됩니다.
  • 개선 사항
    • 이용할 수 없는 지도 버튼은 비활성화 상태로 표시되며 탭할 수 없습니다.
    • 매장 이미지가 없을 때 카테고리 아이콘이 대체 표시됩니다.
    • 빈 이미지 및 지도 URL로 인한 화면 표시 문제가 개선되었습니다.

@Hrepay
Hrepay temporarily deployed to Configuration Files September 1, 2026 02:38 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 16c73cdb-ce90-4095-80ab-e32ff5869655

📥 Commits

Reviewing files that changed from the base of the PR and between e1c2a39 and 971d50f.

📒 Files selected for processing (3)
  • EATSSU/App/Sources/Data/Network/DTO/GoodPriceStore/GoodPriceStoreDTO.swift
  • EATSSU/App/Sources/Presentation/Map/View/MapAppButtonBar.swift
  • EATSSU/App/Sources/Presentation/Map/ViewController/GoodPriceDetailSheetViewController.swift

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

상세 응답에 카카오맵·네이버지도 URL을 추가했습니다. URL 유무에 따라 지도 버튼을 활성화합니다. 이미지가 없으면 카테고리 아이콘을 플레이스홀더로 표시합니다.

Changes

착한가격업소 상세 연동

Layer / File(s) Summary
지도 URL 계약과 버튼 상태 제어
EATSSU/App/Sources/Data/Network/DTO/GoodPriceStore/GoodPriceStoreDTO.swift, EATSSU/App/Sources/Presentation/Map/View/MapAppButtonBar.swift
GoodPriceStoreDetailDTO에 두 지도 URL을 추가했습니다. 지도 버튼은 활성화 상태와 투명도를 함께 갱신합니다.
상세 응답 적용과 표시 처리
EATSSU/App/Sources/Presentation/Map/ViewController/GoodPriceDetailSheetViewController.swift
상세 응답으로 MapAppLauncher를 재구성합니다. URL이 없으면 해당 버튼을 비활성화합니다. 이미지 URL이 없으면 회색 카테고리 아이콘을 표시합니다. 빈 문자열과 공백은 nil로 정규화합니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 971d5

The change adds server-provided map links, disables unavailable map buttons, and provides an image placeholder without any actionable merge-blocking risk remaining.

Sequence Diagram(s)

sequenceDiagram
  participant GoodPriceStoreDetailDTO
  participant GoodPriceDetailSheetViewController
  participant MapAppLauncher
  participant MapAppButtonBar
  GoodPriceStoreDetailDTO->>GoodPriceDetailSheetViewController: 지도 URL과 이미지 URL 전달
  GoodPriceDetailSheetViewController->>MapAppLauncher: 지도 URL로 런처 재구성
  GoodPriceDetailSheetViewController->>MapAppButtonBar: URL 유무에 따라 버튼 활성화
  GoodPriceDetailSheetViewController->>GoodPriceDetailSheetViewController: 이미지 또는 카테고리 아이콘 표시
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed [이슈 #455] DTO에 naverMapUrl과 kakaoMapUrl을 추가하고, 상세 응답에 따라 지도 런처와 버튼 상태를 갱신했습니다. 이미지가 없을 때 카테고리 아이콘 플레이스홀더를 표시합니다. 기존 검색 및 좌표 폴백을 유지하는 변경과도 일치합니다.
Out of Scope Changes check ✅ Passed 변경 사항은 [이슈 #455]의 서버 지도 URL 연동, 지도 버튼 비활성화, 이미지 플레이스홀더 범위에 포함됩니다. 관련 없는 변경은 확인되지 않습니다.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 서버 지도 URL 연동과 이미지 플레이스홀더 추가라는 주요 변경 사항을 정확하고 구체적으로 요약합니다.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/#455

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.

@Hrepay Hrepay self-assigned this Sep 1, 2026
@Hrepay
Hrepay merged commit 052c09e into develop Sep 1, 2026
2 checks passed
@Hrepay
Hrepay deleted the feat/#455 branch September 1, 2026 03:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 착한가격업소 지도 링크 서버 URL 연동 및 이미지 플레이스홀더

1 participant