Skip to content

Conversation

@chattymin
Copy link
Member

@chattymin chattymin commented Aug 8, 2025

🚀 Issue

  • closed #귀찮아서 안만듬

⛳️ Work Description

  • gpt 복사
  • gpt 붙여넣기
  • 멍청한gpt한테화내기
  • aab 뽑아서 제출하기

📢 To Reviewers

  • 오랜만입니다여러분반가워요드디어안드로이드15대응으로찾아왔어요회사에서도이거했는데여기서도이거하니까반가우면서도화가나네요여기서는하고싶지않았는데이걸사다리타기를걸리네요유빈이가눈치껏해주면좋았을텐데아쉽네요상호는취업축하해요사실로컬프로퍼티도못찾아서디코한참뒤졌는데안드톡방에있더라구요그래서대충복사붙여넣기하고썼어요다행히돌아가더라구요근데저희데브서버죽었나봐요안돌아가서프로드서버연결해서했어요참고로플래이콘솔올리다한번실수해서버전두개올렸어요하하죄송합니다그럴수있죠여튼오랜만에두립작업하니까반갑기도하고옛날생각도나고해서새롭네요저희안드끼리한번모이면좋겠어요특히상호씨가한번추진해줬으면좋겠네요안드말고두립끼리도좀봅시다오랜만에얼굴보고싶네요카톡방에서보셔서알겠지만저파트장합니다앞으로바빠질예정이니까바빠지기전에한번봐요열어분야근하고집와서이시간에작업하니까제정신이아니네요감사합니다
image

Summary by CodeRabbit

  • Chores
    • Gradle 버전을 8.10으로 업데이트하였습니다.
    • Android SDK 및 주요 라이브러리(코틀린, AndroidX, Retrofit, OkHttp 등) 버전을 최신으로 상향하였습니다.
    • 앱 버전 코드와 버전명을 각각 14, 1.4로 업데이트하였습니다.
    • OkHttp BOM 의존성 선언 방식을 개선하였습니다.
    • 내부 Gradle 설정 및 속성 처리 방식을 정리하였습니다.

@coderabbitai
Copy link

coderabbitai bot commented Aug 8, 2025

Walkthrough

Gradle 및 Android 빌드 환경 전반에 걸쳐 주요 버전 업그레이드와 의존성 관리 개선이 이루어졌습니다. 빌드 스크립트의 로컬 프로퍼티 접근 방식이 리팩토링되었고, 여러 라이브러리 및 플러그인 버전이 최신으로 갱신되었습니다. OkHttp BOM 적용 방식도 platform 사용으로 변경되었습니다.

Changes

Cohort / File(s) Change Summary
Gradle 및 Android 환경 버전 업그레이드
gradle/wrapper/gradle-wrapper.properties, buildSrc/src/main/kotlin/Constants.kt
Gradle 버전이 8.0에서 8.10으로, compileSdk/targetSdk가 34에서 35로, 앱 버전 코드와 이름이 각각 14, "1.4"로 상향되었습니다.
의존성 및 라이브러리 버전 갱신
buildSrc/src/main/kotlin/Versions.kt
Gradle 플러그인, Kotlin, AndroidX, Hilt, Retrofit, OkHttp, Coil, Lottie, Espresso 등 다수 라이브러리 및 툴의 버전이 최신으로 갱신되고, 일부 신규 의존성 버전 상수가 추가되었습니다. Java 버전도 17에서 21로 변경되었습니다.
빌드 스크립트 리팩토링
app/build.gradle.kts
gradleLocalProperties 호출을 각 스코프별로 한 번만 수행하도록 리팩토링하여, 중복 호출을 제거하고 변수로 재사용하도록 변경되었습니다. 프로퍼티 값의 할당 방식도 명확히 구분되었습니다.
OkHttp BOM 적용 방식 개선
data/build.gradle.kts
OkHttp BOM 의존성 선언이 implementation(platform(okHttpBom))으로 변경되어, BOM을 Gradle platform 메커니즘으로 관리하도록 개선되었습니다.

Sequence Diagram(s)

sequenceDiagram
    participant Gradle
    participant LocalProps
    participant BuildConfig
    participant Manifest

    Gradle->>LocalProps: gradleLocalProperties(rootDir, providers) 호출
    LocalProps-->>Gradle: 프로퍼티 맵 반환
    Gradle->>BuildConfig: buildConfigField에 값 할당 (escaped quotes)
    Gradle->>Manifest: manifestPlaceholders에 값 할당 (string)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~15분

Poem

🐇
새싹처럼 버전이 쑥쑥 올라갔네,
Gradle도 Kotlin도 한층 더 튼튼하게!
빌드 스크립트 깔끔하게 정리하고,
OkHttp BOM도 platform으로 챙기고,
토끼는 오늘도 코드를 다듬으며
한 뼘 더 성장한 프로젝트를 꿈꿔요.
☘️

Note

🔌 MCP (Model Context Protocol) integration is now available in Early Access!

Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context.

✨ Finishing Touches
  • 📝 Docstrings were successfully generated. (🔄 Check again to generate docstrings again)
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch apply-android-15

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:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • 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 explain this code block.
  • 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 explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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 generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (3)
data/build.gradle.kts (1)

52-53: OkHttp BOM을 platform()으로 선언한 변경 👍

다른 모듈들도 동일하게 platform(okHttpBom) 형태를 사용하도록 점검하면 BOM 버전 불일치 위험을 줄일 수 있습니다.

app/build.gradle.kts (2)

25-27: localProps 중복 로드 개선 제안

gradleLocalProperties 호출이 defaultConfig, debug, release에서 각각 수행되어 I/O가 세 번 발생합니다.
블록 바깥에서 한 번만 읽어 val localProps = gradleLocalProperties(rootDir, providers)로 공유하면 속도와 가독성이 좋아집니다.


39-44: BASE_URL 디버그/릴리스 설정 시 널 처리 고려

localProps.getProperty("test.base.url")가 정의되지 않으면 "null"이 BuildConfig에 삽입됩니다.
requireNotNull 또는 ?: error("prop missing") 방식으로 값이 없을 때 즉시 빌드 실패하도록 처리하면 문제를 빠르게 발견할 수 있습니다.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 64906e2 and c5be723.

📒 Files selected for processing (5)
  • app/build.gradle.kts (1 hunks)
  • buildSrc/src/main/kotlin/Constants.kt (1 hunks)
  • buildSrc/src/main/kotlin/Versions.kt (1 hunks)
  • data/build.gradle.kts (1 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
🔇 Additional comments (3)
gradle/wrapper/gradle-wrapper.properties (1)

3-3: Gradle 8.10 업그레이드 후 CI / 로컬 JDK 호환성 확인 필요

AGP 8.7.2는 최소 Gradle 8.4 이상이면 되지만, 8.10은 JDK 17 또는 21을 요구합니다.
CI 이미지와 로컬 개발 환경이 동일 JDK 버전을 사용하도록 점검해주세요.
미스매치 시 빌드 실패가 발생할 수 있습니다.

buildSrc/src/main/kotlin/Constants.kt (1)

3-7: API 35(Android 15) 타겟 지정 전 배포 가능 여부 확인

Play Console이 아직 targetSdkVersion 35를 허용하지 않을 수 있습니다.
배포 채널(내부 트랙 포함)에서 실제 업로드 테스트를 해보고 문제 없음을 확인해주세요.

buildSrc/src/main/kotlin/Versions.kt (1)

4-10: AGP 8.7.2(프리뷰) 사용 결정 재확인

8.7.2는 Canary/Preview 빌드입니다. 안정 버전이 아닌 경우 플러그인·라이브러리 호환성 문제가 발생할 수 있으니, 팀 전체가 프리뷰 사용에 동의했는지 확인 바랍니다.

Comment on lines +31 to 35
"\"${localProps.getProperty("native.app.key")}\""
)
manifestPlaceholders["NATIVE_APP_KEY"] =
gradleLocalProperties(rootDir).getProperty("nativeAppKey")
// manifestPlaceholders는 문자열 그 자체를 넣으면 됨(따옴표 불필요)
manifestPlaceholders["NATIVE_APP_KEY"] = localProps.getProperty("nativeAppKey")
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

속성 키 불일치 가능성 확인

buildConfigField"native.app.key" 값을, manifestPlaceholdersnativeAppKey 값을 사용하고 있습니다.
환경 파일에서 두 키가 모두 정의되지 않았을 경우 "null" 문자열이 삽입돼 런타임 크래시가 발생할 수 있으니 확인 부탁드립니다.
필요 시 check(localProps.getProperty(... ) != null)로 빌드 단계에서 조기 실패를 유도하는 것을 권장합니다.

🤖 Prompt for AI Agents
In app/build.gradle.kts around lines 31 to 35, there is a mismatch between the
property keys used: buildConfigField uses "native.app.key" while
manifestPlaceholders uses "nativeAppKey". To prevent runtime crashes from null
values if these keys are missing in localProps, add checks using
check(localProps.getProperty(...) != null) for both keys to fail early during
the build if either is undefined.

Comment on lines +70 to 73
// Java / JVM
val javaVersion = JavaVersion.VERSION_21
const val jvmVersion = "21"

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Java 21 전환 시 Toolchain 세팅 필수

JavaVersion.VERSION_21jvmTarget = "21"로 올리면

  1. AGP 8.x는 기본적으로 JDK 17로 빌드되므로, java { toolchain.languageVersion.set(JavaLanguageVersion.of(21)) } 설정이 필요하고
  2. 일부 라이브러리가 21 바이트코드를 지원하지 않을 수 있습니다.

CI, Gradle wrapper JVM, 릴리스 빌드가 모두 JDK 21로 통일돼 있는지 반드시 검증해주세요.

🤖 Prompt for AI Agents
In buildSrc/src/main/kotlin/Versions.kt around lines 70 to 73, when upgrading to
Java 21 by setting JavaVersion.VERSION_21 and jvmTarget to "21", you must
configure the Java toolchain explicitly using java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21)) } to ensure AGP 8.x
builds with JDK 21 instead of the default JDK 17. Additionally, verify that the
CI environment, Gradle wrapper JVM, and release builds are all consistently
using JDK 21 to avoid compatibility issues with libraries that may not support
Java 21 bytecode.

Copy link
Member

@Marchbreeze Marchbreeze 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

@leeeyubin leeeyubin left a comment

Choose a reason for hiding this comment

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

이게 바로 36대 안드로이드 파트장??!!ㄷㄷ 수고했어요!

Copy link
Contributor

@crownjoe crownjoe left a comment

Choose a reason for hiding this comment

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

여윽시~~ 수고하셨슴니다!!!!👍👍👍

@chattymin chattymin merged commit c84ca8b into develop Aug 10, 2025
2 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Aug 21, 2025

Caution

No docstrings were generated.

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.

5 participants