Skip to content

6주차 미션_담담#21

Open
sungs25 wants to merge 8 commits into
mainfrom
damdam
Open

6주차 미션_담담#21
sungs25 wants to merge 8 commits into
mainfrom
damdam

Conversation

@sungs25

@sungs25 sungs25 commented May 4, 2026

Copy link
Copy Markdown
Collaborator

📝 작업 내용

  • Hilt 기반 DI 환경 구축
  • MVVM 아키텍처 적용 — Fragment에 흩어져있던 비즈니스 로직을 ViewModel로 분리
  • Repository Local/Remote 분리
  • Interface ↔ Impl 분리로 의존성 역전 원칙 적용
  • StateFlow + UiState 패턴으로 단방향 데이터 흐름 구현
  • 4개 Fragment를 ViewModel과 연결
  • 기존 ApiClient (object 싱글턴) → NetworkModule로 대체

📸 스크린샷

UI 변경 없음


🙏 리뷰 요구사항 (선택)

  • Local/Remote Repository 분리 기준이 적절한지
  • StateFlow collect 시 repeatOnLifecycle(STARTED)로 감싼 패턴이 적절한지

@kimdoyeon1234 kimdoyeon1234 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

수고하셨습니다!

이번 코드는 패키지를 data/, domain/, di/, viewmodel/, fragment/, adapter/로
잘 나눠주셨고, RepositoryModule에서 @BINDS로 interface-구현체를 연결한 점,
ShopAllViewModel과 WishlistViewModel에서 combine으로 즐겨찾기 상태를
Flow로 깔끔하게 합친 점이 정말 좋았어요!

다만 몇 가지 수정하면 좋을점 있어서 코멘트 남겼습니다!

HomeFragment와 WishlistFragment에서 상태가 바뀔 때마다
ProductAdapter를 새로 생성하고 있는데, Adapter를 필드로 선언하고
submitList()로만 갱신하도록 수정해주세요!
그리고 ProductAdapter도 ShopProductAdapter처럼 ListAdapter + DiffUtil로
교체해주시면 더 좋을거 같습니다!

또한 ProductDataStore가 object로 선언되어 매번 Context를 파라미터로 받고 있는데,
class로 바꿔서 Context를 생성자 주입받도록 수정하면 더 깔끔해져요! ProfileEditFragment에 TODO 주석과 템플릿 코드도 정리해주세요!

추가로,
Repository 분리 기준이 Local/Remote로 되어있는데, 일반적으로는 StoreRepository, UserRepository처럼
도메인(기능) 단위로 나누는 게 더 자연스러워요! 하나의 Repository가 필요에 따라 Local과 Remote를 모두 사용할 수 있어야 확장성이 좋아집니다 :) repeatOnLifecycle(STARTED) 패턴도 잘 적용하고 있으십니다!

전반적으로 아키텍처 구조와 Flow 활용이 굉장히 잘 되어있어요.
위 부분들만 다듬어주시면 완성도 높은 코드가 될 것 같습니다. 고생 많으셨어요! 😊

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