[FIX] 빌드 오류 수정#94
Conversation
develop 브랜치 최신화
|
Caution Review failedThe pull request is closed. Walkthrough피드 모델 패키지명을 Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant FeedScreen
participant FeedViewModel
participant Repository
participant Service
User->>FeedScreen: 화면 진입
FeedScreen->>FeedViewModel: feedUiState 수집
FeedViewModel->>Repository: recentWriters/feeds 요청
Repository->>Service: API 호출
Service-->>Repository: 응답 반환
Repository-->>FeedViewModel: 데이터 전달
FeedViewModel-->>FeedScreen: feedUiState 업데이트
FeedScreen-->>User: recentWriters 직접 표시 및 탭/콘텐츠 렌더링
sequenceDiagram
actor User
participant NavExt as NavigationExtensions
participant Nav as NavController
participant Routes as FeedRoutes
User->>NavExt: 글쓰기 요청
NavExt->>Routes: FeedRoutes.Write() 생성
Routes-->>NavExt: 라우트 문자열 반환
NavExt->>Nav: navigate(route)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (1)
✨ Finishing Touches
🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedViewModel.kt (1)
266-280: fetchRecentWriters 실패 시 isLoading 해제 누락 — 로딩 고착/무한스크롤 차단 위험실패 분기에서 isLoading을 false로 되돌리지 않아 canLoadMore 계산이 영구 false가 될 수 있습니다.
다음 패치를 적용해 주세요:
.onFailure { exception -> - updateState { it.copy(error = exception.message) } + updateState { it.copy(isLoading = false, error = exception.message) } }
🧹 Nitpick comments (2)
.idea/deviceManager.xml (1)
6-9: IDE 설정 파일 커밋은 지양 권장 (팀 정책 확인 필요)Device Manager 정렬 상태 변경은 로컬 개발 환경에 종속적입니다. VCS에 포함하면 불필요한 변경 이력이 자주 발생할 수 있어요. 팀에서 .idea 하위 파일을 버전관리하는 정책이 아니라면 이 변경은 제외하는 것을 권장드립니다.
팀 정책상 유지가 필요 없다면, .gitignore에 다음 항목 추가를 고려해주세요:
- .idea/deviceManager.xml
app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedViewModel.kt (1)
80-125: 중복 로직(전체/내 피드 로딩) 최소화 제안loadAllFeeds/loadMyFeeds가 거의 동일한 흐름입니다. 공통화하면 버그 표면적을 줄일 수 있습니다.
예시(개념 스케치):
private inline fun <T> loadFeeds( isInitial: Boolean, isLoadingFlag: () -> Boolean, setLoadingFlag: (Boolean) -> Unit, getNextCursor: () -> String?, setNextCursor: (String?) -> Unit, stateInitializer: (FeedUiState) -> FeedUiState, appendToState: (FeedUiState, List<T>, Boolean) -> FeedUiState, repoCall: suspend (String?) -> Result<Response<T>?> ) { /* 공통 구현 */ }필요 시 실제 코드로 풀어드릴게요.
Also applies to: 127-172
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (11)
.idea/deviceManager.xml(1 hunks)app/src/main/java/com/texthip/thip/data/model/feed/response/AllFeedResponse.kt(1 hunks)app/src/main/java/com/texthip/thip/data/model/feed/response/MyFeedResponse.kt(1 hunks)app/src/main/java/com/texthip/thip/data/repository/FeedRepository.kt(1 hunks)app/src/main/java/com/texthip/thip/data/service/FeedService.kt(1 hunks)app/src/main/java/com/texthip/thip/ui/feed/screen/FeedScreen.kt(1 hunks)app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedViewModel.kt(2 hunks)app/src/main/java/com/texthip/thip/ui/navigator/extensions/FeedNavigationExtensions.kt(1 hunks)app/src/main/java/com/texthip/thip/ui/navigator/navigations/FeedNavigation.kt(0 hunks)app/src/main/java/com/texthip/thip/ui/navigator/routes/FeedRoutes.kt(0 hunks)app/src/main/res/values/strings.xml(1 hunks)
💤 Files with no reviewable changes (2)
- app/src/main/java/com/texthip/thip/ui/navigator/routes/FeedRoutes.kt
- app/src/main/java/com/texthip/thip/ui/navigator/navigations/FeedNavigation.kt
🧰 Additional context used
🧬 Code Graph Analysis (1)
app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedViewModel.kt (2)
app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedDetailViewModel.kt (1)
updateState(28-30)app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedWriteViewModel.kt (1)
updateState(34-36)
🔇 Additional comments (12)
app/src/main/java/com/texthip/thip/data/model/feed/response/AllFeedResponse.kt (1)
1-1: 구 패키지 참조 없음 확인 — 변경 승인
rg검사 결과 더 이상com.texthip.thip.data.model.feeds.response를 참조하는 코드가 없습니다. 패키지 경로를feed.response로 수정한 현재 상태로 문제없으니 승인하겠습니다.app/src/main/res/values/strings.xml (1)
186-186: formatted 속성 제거 및 위치 지정 포맷 전환 권장
formatted="false"와%d/%s병용 시 빌드 타임 포맷 검증이 비활성화되어, 향후 로케일별 자리표시자 개수·순서 불일치를 놓칠 수 있습니다. positional format을 사용하고formatted속성은 제거하는 것을 추천드립니다.
- 변경 대상:
app/src/main/res/values/strings.xml(186행)- <string name="numbering" formatted="false">%d. %s</string> + <string name="numbering">%1$d. %2$s</string>- 현재 다른
values-*/strings.xml에는 동일 key가 없으나, 새로운 로케일이 추가될 경우 번역 시 자리표시자 유지 여부를 꼭 검증해주세요.CardVote.kt(106행) 등에서R.string.numbering을 호출할 때getString()혹은stringResource()에 두 개의 인자(숫자, 문자열)가 올바르게 전달되는지 확인이 필요합니다.위 사항 검토 후 반영 부탁드립니다.
app/src/main/java/com/texthip/thip/data/repository/FeedRepository.kt (1)
10-11: import 경로 수정 LGTM모델 패키지 경로 변경(feed.response)과 일치하도록 import를 정정한 부분 문제 없습니다. 런타임 동작에 영향은 없고 컴파일 정합성만 보장됩니다.
app/src/main/java/com/texthip/thip/data/service/FeedService.kt (1)
9-10: import 경로 수정 LGTM서비스 인터페이스 시그니처 변경 없이 모델 패키지 경로에만 맞춘 정정으로 보입니다. 연쇄 영향도 최소입니다.
app/src/main/java/com/texthip/thip/data/model/feed/response/MyFeedResponse.kt (1)
1-1: 패키지 경로 정정 LGTM – 잔존 참조 없음 확인됨rg 스캔 결과
com.texthip.thip.data.model.feeds.response에 대한 구 경로 참조가 전혀 발견되지 않았습니다.
추가 작업 없이 머지하세요!app/src/main/java/com/texthip/thip/ui/navigator/extensions/FeedNavigationExtensions.kt (2)
25-25: 닫는 중괄호 보완 OK의도대로 형식 보완만 이뤄졌습니다.
19-20: 정적 객체 호출 잔여 없음 — 검증 완료
- FeedNavigation.kt (55, 56):
FeedRoutes.Write는 제네릭 타입 파라미터(composable<FeedRoutes.Write>,toRoute<FeedRoutes.Write>)로 사용된 부분이며, 정적 객체 호출이 아닙니다.더 이상의 괄호 없는
FeedRoutes.Write호출은 존재하지 않습니다.app/src/main/java/com/texthip/thip/ui/feed/viewmodel/FeedViewModel.kt (3)
57-59: updateState 도입으로 상태 갱신 일관화다른 ViewModel(FeedWrite/FeedDetail)과 동일한 패턴으로 통일되어 가독성과 유지보수성이 개선되었습니다.
258-258: 닫는 중괄호 추가 OK정상 종료 누락을 보완한 단순 수정입니다.
5-6: 모든 구 패키지 참조가 제거되었습니다rg 검색 결과
com.texthip.thip.data.model.feeds.response경로가 코드베이스에 더 이상 존재하지 않음을 확인했습니다.app/src/main/java/com/texthip/thip/ui/feed/screen/FeedScreen.kt (2)
235-241: 해당 경고 불필요:whole_num문자열에formatted="false"가 설정되어 있지 않습니다.
strings.xml확인 결과whole_num리소스에는formatted속성이 기본값(true)으로 유지되어 있으며,%d플레이스홀더가 포함되어 있어stringResource(R.string.whole_num, feedUiState.myFeeds.size)호출 시 예외가 발생하지 않습니다.
현재 구현을 그대로 유지하시면 됩니다.Likely an incorrect or invalid review comment.
309-311: MySubscribeBarlist에 전달된 타입이 시그니처와 일치합니다
FeedUiState.recentWriters는List<RecentWriterList>로 선언되어 있으며,MySubscribeBarlist(subscriptions: List<RecentWriterList>)의 파라미터 타입과 완전히 일치합니다. 따라서 추가 매핑 계층이나 시그니처 변경 없이 그대로 전달해도 빌드 에러가 발생하지 않습니다.
➕ 이슈 링크
🔎 작업 내용
📸 스크린샷
😢 해결하지 못한 과제
[] TASK
📢 리뷰어들에게
Summary by CodeRabbit