[CHORE] 린팅 및 포매팅 도입#8
Merged
Merged
Conversation
lyh5427
approved these changes
Jun 26, 2026
lyh5427
left a comment
Collaborator
There was a problem hiding this comment.
고생하셨습니다 👍
로컬 브런치로 테스트해봤는데 엄청 편리하네요 ㅎ
구조는 제가 고려하던 방향과 동일합니다! 깔끔하게 잘 되어있는 것 같아요
아마 CI PR이 병합된 이후에 해당 스크립트에 린팅 여부를 검사하는 옵션을 한 줄 추가할 겁니다. 이 부분만 인지해주시면 좋을 것 같아요!
Q1. 위 내용은 pre-commit에 detekt만 추가인가요, lintDebug인가요? 어느 방향이든 병합 전에 추가하고 병합해주셔도 될 것 같습니다!
Collaborator
Author
|
/noti
둘 다입니다.
추가로 spotlessCheck도 같이 달아두었어요. 이로서 현재 CI 스크립트에서 gradlew에 맡기는 작업은 아래와 같습니다:
혹시나 하여 첨언하자면 코드를 직접 수정하는 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚩 연관 이슈
closed #6
📝 작업 내용
린팅 및 포매팅을 프로젝트에 적용합니다. 주요 변경 사항은 다음과 같습니다:
📖 의존성 추가
다음의 3건 의존성을 추가합니다:
🛠️ 컨벤션 플러그인 추가
린팅 및 포매팅을 적용할 수 있는 컨벤션 플러그인을 추가했습니다.
린팅 및 포매팅 컨벤션 플러그인
이 컨벤션 플러그인은 다른 모듈에 사용할 수 있습니다. 크게 2가지로 나뉩니다:
Kotlin 린팅 및 포매팅
순수 Kotlin 코드에 대해 적용할 수 있는 컨벤션 플러그인입니다. 순수 Kotlin이라는 말은 즉 Android Native 기능과는 전혀 관련이 없는 모듈이어야 한다는 의미입니다.
Android 린팅 및 포매팅
Android 의존 코드에 대해 적용할 수 있는 컨벤션 플러그인입니다. 그렇기 때문에 Kotlin 린팅 및 포매팅 플러그인에는 없는 Slack Compose Lints가 적용되어 있습니다. 이 플러그인은 Spotless와 detekt 설정을 포함하며, Android 모듈에는 Slack Compose Lint도 추가로 적용합니다.
베이스 컨벤션 플러그인
이 컨벤션 플러그인들은 직접 사용하지 않습니다. 위에서 소개한 Kotlin 및 Android 린팅 및 포매팅 컨벤션 플러그인이 내부적으로 사용하는 플러그인으로서 외부에서 직접 사용할 일은 없습니다.
버전 카탈로그에 새 컨벤션 플러그인 추가
gradle/libs.versions.toml파일에 새로 정의한 컨벤션 플러그인들을 등록했습니다:아래와 같이 버전 카탈로그 별칭(alias)으로 불러오면 됩니다:
alias(libs.plugins.dminus14.android.lint)alias(libs.plugins.dminus14.kotlin.lint)📝 기타 파일 추가
여러 파일을 추가했습니다. 각 파일의 목적은 다음과 같습니다:
🤔 사용법
그래서 어떻게 쓰냐고요? 크게 순수 Kotlin과 Android 모듈로 나누어 사용하면 됩니다.
순수 Kotlin 모듈
모듈의
plugin블록에 아래 코드를 추가합니다:plugins { alias(libs.plugins.dminus14.kotlin.lint) }Android 모듈
모듈의
plugin블록에 아래 코드를 추가합니다:plugins { alias(libs.plugins.dminus14.android.lint) }추가로, Android 모듈에 대해서는
dminus14.kotlin.lint플러그인을 추가로 적용 안 해줘도 됩니다.dminus14.android.lint플러그인이dminus14.spotless와dminus14.detekt를 포함하고 있어, Android에 더해 Kotlin 린팅도 함께 진행하기 때문입니다.수동 실행
다음의 3가지 명령어로 린팅 및 포매팅을 수동 실행할 수 있습니다:
./gradlew lintDebug| 린팅 상태 확인./gradlew spotlessCheck| 포매팅 상태 확인./gradlew spotlessApply| 포매팅 적용✅ 로직 변경 없는 파일
아래 파일들은 린팅 및 포매팅 도입 후, 포매팅에 의해 발생한 변경 사항으로서 로직 변경은 없습니다.
🏞️ 스크린샷 (선택)
없음
🗣️ 리뷰 요구사항 (선택)