Skip to content

코스발견 배너 Firestore → 서버 API 전환 - #408

Open
unam98 wants to merge 1 commit into
developfrom
fix/merge-banner-server-api
Open

코스발견 배너 Firestore → 서버 API 전환#408
unam98 wants to merge 1 commit into
developfrom
fix/merge-banner-server-api

Conversation

@unam98

Copy link
Copy Markdown
Collaborator

작업 배경

  • Android/iOS로 분리돼 있던 Firebase 프로젝트를 runnect-ios 단일 프로젝트로 통합하는 과정에서, 새 프로젝트에 Firestore API가 비활성화돼 있어 코스발견 배너가 안 뜨는 회귀가 발생함
  • 원인 파악 결과 RemoteBannerDataSource가 아직 Firestore를 직접 참조하는 구코드였고, 이를 자체 서버 API로 전환하는 작업이 feature/banner-server-api-migration 브랜치에 이미 완성돼 있었지만 develop에 머지되지 않은 상태였음
  • 해당 브랜치 커밋(77b6e0ec)을 최신 develop 기준으로 cherry-pick하여 반영, Firestore 의존성 자체를 제거

변경 사항

영역내용
BannerService.kt (신규)/api/banner 서버 엔드포인트 Retrofit 인터페이스
ResponseGetBanner.kt (신규)배너 응답 DTO
RemoteBannerDataSource.ktFirestore addSnapshotListener 대신 BannerService.getBanners() 호출로 교체
ServiceModule.ktFirebaseFirestore DI 프로바이더 제거, BannerService 프로바이더 추가

영향 범위

  • 코스발견 탭 배너 데이터 소스 전체 변경 (실시간 Firestore 구독 → 1회성 REST 호출)
  • Firestore 관련 코드/의존성이 이 기능에서 완전히 제거됨 (Firebase 프로젝트가 무엇이든 영향 없음)

Test Plan

  • ./gradlew :app:assembleDebug 빌드 성공
  • 실기기 설치 후 logcat으로 GET https://api.runnect.site/api/banner 200 응답 및 배너 3건 정상 파싱 확인
  • 실기기 코스발견 탭에서 배너 정상 노출 육안 확인

🤖 Generated with Claude Code

Runnect 서버에 GET /api/banner가 새로 생겨서(Runnect-Spring-Boot-Server#209/#210), Firestore "data" 컬렉션을 직접 구독하던 RemoteBannerDataSource를 BannerService(Retrofit) 호출로 교체. DiscoverBanner(index/imageUrl/linkUrl) 구조는 그대로라 상위 Repository/ViewModel/Adapter는 변경 없음.
@unam98unam98 self-assigned this Aug 11, 2026
@coderabbitai

Copy link
Copy Markdown

Warning

Review limit reached

@unam98, you've reached your PR review limit, so we couldn't start this review.

Next review available in:32 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b75227c6-55de-4b31-abab-19873170ea7e

📥 Commits

Reviewing files that changed from the base of the PR and between d7cb241 and b6539c3.

📒 Files selected for processing (4)
  • app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetBanner.kt
  • app/src/main/java/com/runnect/runnect/data/service/BannerService.kt
  • app/src/main/java/com/runnect/runnect/data/source/remote/RemoteBannerDataSource.kt
  • app/src/main/java/com/runnect/runnect/di/ServiceModule.kt

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.

Sign up for freeto 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.

1 participant

@unam98