-
Notifications
You must be signed in to change notification settings - Fork 0
[FEAT/#410] Chucker 기능 추가했어요. #418
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughChucker 디버깅 라이브러리를 버전 카탈로그와 앱 모듈 의존성에 추가하고, RetrofitModule에 Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant App as 앱
participant DI as RetrofitModule (DI)
participant OK as OkHttpClient
participant CH as ChuckerInterceptor
participant NW as 서버
App->>DI: 클라이언트 요청
DI->>DI: provideChuckerInterceptor(context)
DI->>OK: 빌더 구성\n+ logging/auth\n+ addInterceptor(CH)
App->>OK: HTTP 요청 전송
OK->>CH: 요청 인터셉트 (검사/수집)
CH->>NW: 요청 전달
NW-->>CH: 응답 수신
CH-->>OK: 응답 반환
OK-->>App: 응답 전달
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used🪛 actionlint (1.7.8).github/workflows/pr_builder.yml30-30: the runner of "actions/setup-java@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue (action) ⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (2)
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. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt (2)
85-87: ChuckerInterceptor 설정을 강화하면 디버깅 경험을 개선할 수 있습니다.현재 기본 설정으로 ChuckerInterceptor를 생성하고 있습니다. 다음과 같은 추가 설정을 고려해보세요:
@Provides @Singleton -fun provideChuckerInterceptor(@ApplicationContext context: Context): ChuckerInterceptor = ChuckerInterceptor.Builder(context).build() +fun provideChuckerInterceptor(@ApplicationContext context: Context): ChuckerInterceptor = + ChuckerInterceptor.Builder(context) + .maxContentLength(250_000L) + .alwaysReadResponseBody(true) + .build()이렇게 하면:
- 더 큰 응답 본문을 확인할 수 있습니다
- 응답 본문을 항상 읽어 더 정확한 검사가 가능합니다
91-101: 인터셉터가 올바르게 추가되었습니다.ChuckerInterceptor가 OkHttpClient에 성공적으로 통합되었습니다. 더 정확한 네트워크 데이터 캡처를 원한다면 chuckerInterceptor를 authInterceptor 다음에 추가하는 것을 고려해보세요(선택사항).
선택적 개선사항: 인터셉터 순서 조정
fun provideClient( loggingInterceptor: HttpLoggingInterceptor, authInterceptor: Interceptor, tokenAuthenticator: TokenAuthenticator, chuckerInterceptor: ChuckerInterceptor ) = OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .addInterceptor(authInterceptor) .addInterceptor(chuckerInterceptor) .authenticator(tokenAuthenticator) .build()이렇게 하면 Chucker가 인증 헤더를 포함한 최종 요청을 캡처할 수 있습니다.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
app/build.gradle.kts(1 hunks)app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt(2 hunks)gradle/libs.versions.toml(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: PR Builder
🔇 Additional comments (5)
gradle/libs.versions.toml (1)
45-45: LGTM! Chucker 의존성이 올바르게 설정되었습니다.버전 카탈로그에 Chucker 4.0.0 버전과 디버그/릴리스용 라이브러리 정의가 적절하게 추가되었습니다. 디버그 빌드에는 전체 기능을, 릴리스 빌드에는 no-op 구현을 사용하는 표준 패턴을 따르고 있습니다.
Also applies to: 119-120
app/build.gradle.kts (1)
104-107: LGTM! 빌드 변형별 의존성이 올바르게 구성되었습니다.디버그 빌드에는 전체 Chucker 라이브러리를, 릴리스 빌드에는 no-op 구현을 사용하여 프로덕션 환경에서의 오버헤드를 방지하고 있습니다.
app/src/main/java/com/spoony/spoony/core/network/RetrofitModule.kt (3)
3-4: LGTM! 필요한 import 문이 추가되었습니다.Chucker 통합을 위한 import 문들이 적절하게 추가되었습니다.
Also applies to: 12-12
106-112: LGTM! Auth 클라이언트에 Chucker가 올바르게 통합되었습니다.AuthClient에 ChuckerInterceptor가 적절하게 추가되었습니다.
117-123: LGTM! Coil 클라이언트에 Chucker가 올바르게 통합되었습니다.Coil 이미지 로딩에 사용되는 클라이언트에도 ChuckerInterceptor가 적절하게 추가되어 이미지 요청도 디버깅할 수 있습니다.
Hyobeen-Park
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
우왕 신기해!! 어푸푸
angryPodo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋은거 배워갑니다ㅎㅎ Coil관련된거만 논의해보작오
| debugImplementation(libs.chucker.library) | ||
|
|
||
| // Release | ||
| releaseImplementation(libs.chucker.library.no.op) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이렇게 해야 하는구만...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이렇게해야 확실한것같더라구요
| loggingInterceptor: HttpLoggingInterceptor, | ||
| chuckerInterceptor: ChuckerInterceptor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CoilClient도 로깅을 찍을까요 말까요? @Hyobeen-Park @Roel4990
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
음 일단 다 넣어두긴 했는데 뺼까요.>?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넣어도 크게 문제될것같진않습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/pr_builder.yml (1)
70-70:--stacktrace옵션 추가의 목적과 대안 검토 권장.Chucker 추가에 따른 빌드 진단 개선을 위해
--stacktrace옵션을 추가한 것으로 보입니다. 이는 빌드 실패 시 스택 트레이스 정보를 출력하여 디버깅을 돕습니다.하지만 다음 사항을 고려하시길 권장합니다:
--stacktrace는 기본적인 스택 정보만 제공하며,--info또는--debug는 더 상세한 로그를 제공합니다.- Chucker와의 직접적인 연관성을 명확히 하기 위해 커밋 메시지나 PR 설명에 이 변경의 이유를 문서화하면 좋습니다.
- 빌드 시간 증가를 모니터링하여 필요시 더 가벼운 옵션으로 변경할 수 있습니다.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/pr_builder.yml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: PR Builder
Related issue 🛠
Work Description ✏️
Screenshot 📸
To Reviewers 📢
혹시 잘 안되면 물어봐주세요.
Summary by CodeRabbit