[Feature] AsyncStream 및 로컬 캐싱 적용을 통한 지출 내역 로딩 개선#47
Merged
Conversation
minneee
approved these changes
Dec 10, 2025
Peter1119
added a commit
that referenced
this pull request
Dec 10, 2025
This reverts commit 47fdac8.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 관련 이슈
✨ 작업 내용
ExpenseLocalDataSource및ExpenseCache를 추가하여 이미 불러온 지출 내역을 로컬에 저장합니다.ExpenseRepository가 이제AsyncStream을 반환하며, 캐시된 데이터를 즉시 방출하고 네트워크 응답 후 최신 데이터를 다시 방출합니다.SettlementFeature및ExpenseListFeature가 캐싱된 데이터를 활용하도록 로직을 수정했습니다.ExpenseListFeature에서 직접 날짜를 관리하는 대신Travel객체의 날짜를 참조하도록 구조를 단순화했습니다.onAppear로 변경했습니다.📸 Showcase
📝 참고 사항
Yield Cache), 동시에 백그라운드에서 네트워크 요청을 수행하여 성공 시 최신 데이터로 업데이트(Yield Remote & Update Cache)하는 방식을 적용했습니다.Motivation 🥳 (코드를 추가/변경하게 된 이유)
Key Changes 🔥 (주요 구현/변경 사항)
ExpenseLocalDataSource,ExpenseCache: 파일 기반의 간단한 캐싱 저장소 구현ExpenseRepository:AsyncStream<Result<[Expense], Error>>반환 형태로 변경하여 스트림 방식의 데이터 전달 구현SettlementFeature: Repository 변경에 맞춰 데이터 바인딩 로직 수정ExpenseListFeature:Computed Property를 활용해 날짜 데이터의 정합성 보장To Reviewers 🙏 (리뷰어에게 전달하고 싶은 말)
Reference 🔗
Close Issues 🔒 (닫을 Issue)
Close #No.
Checklist