Skip to content

Conversation

jinukeu
Copy link
Member

@jinukeu jinukeu commented Apr 2, 2025

💡 Issue

  • Resolved: #이슈번호

🌱 Key changes

QA 3개 처리했습니다.
Exception 발생 시, 로그 캣에 정보가 부족했던 현상 해결했습니다.

예를 들어 HomeViewModel에서 Exception이 발생한 경우 아래 처럼 로그가 나옵니다.
하지만 로그를 보시면 HomeViewModel의 몇번 줄에서 Exception이 발생했는지에 대한 정보를 찾을 수 없습니다.

2025-04-02 22:10:27.133 20045-20125 AndroidRuntime          com.yapp.app.official                E  FATAL EXCEPTION: DefaultDispatcher-worker-2
                                                                                                    Process: com.yapp.app.official, PID: 20045
                                                                                                    com.yapp.model.exceptions.InvalidTokenException: 비정상 토큰입니다.
                                                                                                    	at com.yapp.model.exceptions.YappServerError.<clinit>(YappExceptions.kt:21)
                                                                                                    	at com.yapp.core.data.remote.retrofit.ApiResultCall.handleHttpError(ApiResultCallAdapter.kt:59)
                                                                                                    	at com.yapp.core.data.remote.retrofit.ApiResultCall.access$handleHttpError(ApiResultCallAdapter.kt:21)
                                                                                                    	at com.yapp.core.data.remote.retrofit.ApiResultCall$enqueue$1.onResponse(ApiResultCallAdapter.kt:30)
                                                                                                    	at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:164)
                                                                                                    	at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
                                                                                                    	at java.lang.Thread.run(Thread.java:1012)
                                                                                                    	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f6d7a6d, Dispatchers.IO]

위 이슈 해결했습니다.

✅ To Reviewers

📸 스크린샷

스크린샷
파일첨부바람

jinukeu added 5 commits April 2, 2025 22:57
- Firebase Crashlytics KTX 의존성 추가
- `proguard-rules.pro` 파일을 생성하여 Proguard 규칙 추가
- Crashlytics 예외 로깅을 위한 `RecordException` 추가
- Crashlytics 플러그인 및 Google Service 플러그인 추가
- core 모듈의 common-android 생성 및 예외 로깅 추가
- feature 모듈에서 발생한 예외에 대한 예외 로깅 처리 추가
- core 모듈과 common 모듈의 build.gradle 파일 수정
- AndroidManifest.xml 파일 추가
- `consumer-rules.pro` 파일 추가
- 특수문자만을 허용하는 것이 아닌, 알파벳과 숫자 이외의 문자를 허용하도록 수정
Increased the `versionCode` in `build.gradle.kts` from 1 to 2. This signifies an update to the application.
@jinukeu jinukeu self-assigned this Apr 2, 2025
Copy link

coderabbitai bot commented Apr 2, 2025

Important

Review skipped

Auto reviews are limited to specific labels.

🏷️ Labels to auto review (1)
  • CodeRabbit

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@@ -55,7 +54,7 @@ class HomeViewModel @Inject constructor(
.catch { error->
when(error) {
is UserNotFoundForEmailException, is InvalidTokenException -> postSideEffect(HomeSideEffect.NavigateToLogin)
else -> throw error
else -> error.record()
Copy link
Member Author

Choose a reason for hiding this comment

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

앞으로 예외는 이렇게 처리하시면 됩니다.

import timber.log.Timber

fun Throwable.record() {
recordException(RuntimeException(this))
Copy link
Member Author

Choose a reason for hiding this comment

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

Throwable을 rethrow하는 경우 stack trace에 rethrow한 위치가 남지 않아 RuntimeException으로 감샀습니다. 이러면 throw, rethrow의 stack trace 정보가 모두 남게 됩니다.

Copy link
Contributor

@ashwon12 ashwon12 left a comment

Choose a reason for hiding this comment

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

변경 내용 확인했습니다 👍🏻

Copy link
Member

@DongChyeon DongChyeon left a comment

Choose a reason for hiding this comment

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

변경사항 확인했습니다!

Copy link
Contributor

@TaeseongYun TaeseongYun left a comment

Choose a reason for hiding this comment

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

확인했습니다 ~

@jinukeu jinukeu merged commit c5a2056 into release/1.0.0 Apr 3, 2025
1 check passed
@jinukeu jinukeu deleted the qa/1.0.0 branch April 3, 2025 12:40
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.

4 participants