-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
52 lines (46 loc) · 2.51 KB
/
.coderabbit.yaml
File metadata and controls
52 lines (46 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
language: ko
reviews:
# 자동 리뷰 활성화
auto_review:
enabled: true
# 고수준 요약 포함
high_level_summary: true
# 인라인 코멘트 활성화
poem: false
review_status: true
collapse_walkthrough: false
# 리뷰 포커스 영역
path_instructions:
- path: "**/*.kt"
instructions: |
- Jetpack Compose 구조, 상태 관리, recomposition 최적화에 집중
- ViewModel, UiState, 단방향 데이터 흐름 패턴 검토
- 불필요한 recomposition 가능성, remember/derivedStateOf 적절한 사용 확인
- 네이밍 컨벤션, 가독성, Google 권장 Android 아키텍처 준수 여부
# Google Recommended Architecture
- 레이어 분리 준수: presentation(ViewModel/Ui) ↔ data(repository/datasource) 의존 방향이 단방향인지 확인
- 비즈니스 로직이 ViewModel 또는 Repository에 과도하게 섞여 있지 않은지, 책임이 명확한지 확인
- ViewModel이 Android/IO 디테일에 과하게 의존하지 않는지 확인
(예: Context 직접 의존, Retrofit DTO/Room Entity를 그대로 UI에 노출)
- UI(Composable)는 UiState만 관찰하고, 로직/네트워크/상태 변경이 직접 발생하지 않는지 확인
- UiState는 불변(immutable) 구조로 관리되고, 상태 갱신은 copy/update 패턴으로 일관되게 처리되는지 확인
- 단발성 이벤트(네비게이션/토스트/스낵바)는 State와 분리되어
(예: SharedFlow/Channel) 중복 실행·화면 회전 시 재처리 문제가 없는지 확인
- Repository는 single source of truth 원칙을 따르는지 확인
(원격/로컬/캐시 데이터 흐름이 한 곳에서 일관되게 관리되는지)
- Flow/Coroutine 사용이 적절한지 확인
(viewModelScope 사용, collectLatest/cancellation 고려, dispatcher 분리 여부)
- 에러 처리 전략이 일관적인지 확인
(UiState.Error, Result 등으로 UI가 예측 가능하게 상태를 표현하는지)
- DI(Hilt) 경계 확인
(ViewModel/Singleton 스코프 적절성, interface 기반 바인딩, 테스트 가능성)
- 테스트 관점에서 ViewModel과 Repository가
의존성 주입을 통해 단위 테스트 가능하도록 설계되어 있는지 확인
# 리뷰에서 제외할 파일
path_filters:
- "!**/build/**"
- "!**/generated/**"
- "!**/.gradle/**"
- "!**/*.png"
- "!**/*.jpg"
- "!**/*.webp"