Skip to content

[Chore]: 앱 릴리스 빌드 최적화(R8) 활성화 및 라이브러리별 ProGuard 규칙 구성 - #156

Open
oungsi2000 wants to merge 1 commit into
developfrom
fix/r8
Open

[Chore]: 앱 릴리스 빌드 최적화(R8) 활성화 및 라이브러리별 ProGuard 규칙 구성#156
oungsi2000 wants to merge 1 commit into
developfrom
fix/r8

Conversation

@oungsi2000

Copy link
Copy Markdown
Collaborator

작업 내용

릴리스 빌드에서 R8(코드 축소/난독화)을 활성화하고, Kakao SDK/Ktor 관련 크래시를 막기 위한 ProGuard 규칙을 정리했습니다.

변경사항 / 상세

  • app/build.gradle.kts: release 빌드타입에 isMinifyEnabled = true, isShrinkResources = true 적용
  • app/proguard-rules.pro 재작성:
    • Signature/Annotation 등 리플렉션·제네릭 처리에 필요한 공통 속성 유지
    • Kakao SDK: SDK 내부적으로 Retrofit+Gson을 번들링해서 쓰기 때문에 관련 Gson TypeAdapter/Serializer 규칙 추가 (기존 -keep class com.kakao.sdk.** { *; }는 유지)
    • Ktor / OkHttp: 엔진을 ServiceLoader로 찾는 경로 keep, 데스크톱 전용 TLS 클래스 관련 -dontwarn
    • kotlinx.serialization: @Serializable 클래스의 Companion/serializer()가 제거되지 않도록 공식 권장 규칙 적용
    • 이 프로젝트가 실제로는 Retrofit이 아니라 Ktor를 쓰는데도 예전에 복붙되어 남아있던, 아무 것도 안 하던 죽은 Retrofit 전용 규칙 제거

검증

  • :app:assembleRelease 실제 빌드 성공 (R8 에러 없음), mapping.txt 생성으로 난독화 적용 확인
  • 연결된 실기기에 릴리스 APK 설치 후 콜드 스타트 로그캣 확인 — FATAL/ClassNotFoundException 없음
  • ktlintCheck + test 전체 통과

중점 리뷰사항

  • 카카오 로그인 및 실제 API 호출까지 포함한 전체 플로우는 기기에서 직접 눌러보지 않았습니다(실계정 로그인이라 자동으로 안 건드림) — 리뷰어/QA 단계에서 실제 로그인·API 왕복까지 한 번 확인 부탁드립니다.

코드 최적화 및 리소스 축소를 활성화하고, 사용 중인 외부 라이브러리(Kakao SDK, Ktor, kotlinx.serialization 등)의 정상 동작을 위한 ProGuard 규칙을 대폭 업데이트합니다.

- `build.gradle.kts`: `isMinifyEnabled` 및 `isShrinkResources`를 `true`로 설정하여 릴리스 빌드 시 코드 난독화 및 리소스 축소 적용
- `proguard-rules.pro`:
    - 리플렉션 및 제네릭 처리를 위한 공통 속성(`Signature`, `Annotations` 등) 유지 설정 추가
    - **Kakao SDK**: SDK 내부 클래스 및 리플렉션을 사용하는 Gson 관련 직렬화 모델의 난독화 제외 규칙 추가
    - **Ktor & OkHttp**: 엔진 탐색을 위한 `ServiceLoader` 경로 및 안드로이드 미지원 클래스에 대한 경고 무시 처리
    - **kotlinx.serialization**: `@Serializable` 어노테이션이 적용된 클래스의 `Companion` 객체와 `serializer()` 메서드가 삭제되지 않도록 공식 권장 규칙 적용
    - 기존의 불필요하거나 중복된 Retrofit 관련 규칙 정리 및 주석을 통한 가독성 개선
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6afe932f-8cdf-4b44-b329-c39f1354e5c6

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

Comment @coderabbitai help to get the list of available commands.

@oungsi2000 oungsi2000 changed the title build: 앱 릴리스 빌드 최적화(R8) 활성화 및 라이브러리별 ProGuard 규칙 구성 [Chore]: 앱 릴리스 빌드 최적화(R8) 활성화 및 라이브러리별 ProGuard 규칙 구성 Aug 20, 2026
@oungsi2000 oungsi2000 self-assigned this Aug 20, 2026
@oungsi2000 oungsi2000 added the chore 빌드 프로세스, 도구 설정 변경 등 기타 작업 label Aug 20, 2026
@oungsi2000
oungsi2000 changed the base branch from release/1.0 to develop August 22, 2026 02:35
@oungsi2000
oungsi2000 marked this pull request as ready for review August 22, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore 빌드 프로세스, 도구 설정 변경 등 기타 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant