Skip to content

Comments

Koin convention plugin 추가#42

Merged
chanho0908 merged 1 commit intomainfrom
feature/41-koin-convention-plugin
Jan 20, 2026
Merged

Koin convention plugin 추가#42
chanho0908 merged 1 commit intomainfrom
feature/41-koin-convention-plugin

Conversation

@chanho0908
Copy link
Owner

@chanho0908 chanho0908 commented Jan 20, 2026

이슈 번호

#41

작업내용

build-logic에 Koin convention plugin을 추가했습니다.
DroidMorning feature 컨벤션에 적용하여 Koin 의존성 구성을 공통화했습니다.

build-logic에 Koin 의존성 구성을 재사용 가능한 플러그인으로 분리했습니다.
기존 feature 컨벤션에도 적용해 중복 구성을 줄였습니다.

🤖 Generated with [Firebender](https://firebender.com)

Co-Authored-By: Firebender <help@firebender.com>
@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

이 변경사항은 Koin 의존성 관리를 위한 새로운 Gradle 컨벤션 플러그인을 도입합니다. KoinConventionPlugin 클래스를 생성하여 Koin 의존성을 설정하는 로직을 별도의 플러그인으로 캡슐화하고, 기존 DroidMorningFeaturePlugin에서 이를 적용합니다. 프로젝트 확장 함수(koinDependencies)를 통해 multiplatform 소스셋에 Koin 라이브러리를 일관되게 주입하며, gradle/libs.versions.toml에 플러그인 별칭을 등록하여 버전 카탈로그 시스템과 통합합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–25 minutes

상세 리뷰

긍정적 측면

컨벤션 플러그인 패턴의 좋은 적용
기존 composeMultiplatformDependencies() 패턴과 동일한 구조로 Koin 플러그인을 구현했습니다. 이는 코드 일관성을 유지하고 새로운 개발자도 쉽게 이해할 수 있는 설계입니다.

관심사의 명확한 분리
Koin 의존성 관리를 별도의 플러그인으로 분리함으로써 기능별 책임을 명확히 했습니다. 향후 Koin 설정이 변경될 때 한 곳에서만 수정하면 된다는 장점이 있습니다.

버전 카탈로그와의 통합
gradle/libs.versions.toml에 플러그인 별칭을 추가하여 의존성 관리의 일관성을 보장했습니다.

개선 제안

번들 구조 활용 검토

DroidMorningFeaturePlugin에서 번들 기반 의존성(libs.bundle("koin"))을 완전히 제거하고 새로운 컨벤션만 사용하도록 변경했는데, 다른 특정 피처 플러그인에서도 여전히 직접 Koin 의존성을 참조하고 있을 수 있습니다.

→ 프로젝트 전체에서 Koin 의존성 선언 방식이 일관되게 변경되었는지 확인하면 좋겠습니다. 혹시 다른 파일에서도 libs.bundle("koin")을 사용 중이라면 마이그레이션이 필요할 것 같습니다.

KoinConventionPlugin의 예외 처리

override fun apply(target: Project) {
    target.koinDependencies()
}

현재 구현에서 koinDependencies() 함수가 항상 성공한다고 가정하고 있습니다. 만약 Kotlin Multiplatform 플러그인이 적용되지 않은 프로젝트에 이 플러그인을 적용하면 어떻게 될까요?

→ 필요시 안전한 네비게이션이나 적절한 오류 메시지를 추가하는 것을 고려해볼 만합니다.

문서화 제안

새로운 컨벤션 플러그인의 사용 시점과 목적을 명시하는 주석이나 문서가 있으면 좋겠습니다. 예를 들어 ProjectExtensions.ktkoinDependencies() 함수에 KDoc 주석을 추가하면 IDE에서 사용 시 의도가 더 명확할 것 같습니다.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 변경사항의 핵심을 명확히 전달합니다. Koin convention plugin 추가라는 주요 변경사항을 간결하게 설명하고 있습니다.
Description check ✅ Passed PR 설명이 변경사항과 관련있게 작성되었습니다. 이슈 번호, 작업내용, 결과물을 명확히 기술하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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 and usage tips.

@chanho0908 chanho0908 merged commit 655ca21 into main Jan 20, 2026
3 checks passed
@chanho0908 chanho0908 deleted the feature/41-koin-convention-plugin branch January 20, 2026 04:56
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.

1 participant