detekt custom rule로 코드 품질을 높여보세요!

by DD
8개월 전
조회수 5

detekt를 사용하여 Kotlin 프로젝트에 custom rule을 추가하는 방법을 안내함

Gradle 설정을 통해 detekt-api, detekt-test 의존성을 추가하고, custom rule을 구현함

println() 함수 사용 금지 Rule 예시를 통해 RuleSetProvider 등록 및 적용 방법을 설명함

custom rule 구현 아키텍처

detekt-api 의존성을 추가하여 Rule을 정의하고, visitCallExpression 함수를 오버라이딩하여 코드 스멜을 감지한다. 구체적으로, RuleSetProvider를 통해 custom rule을 detekt에 등록하고, META-INF/services 설정을 통해 로드한다. 따라서, detekt 실행 시 custom rule이 적용된다.

테스트 코드 작성 및 적용

detekt-test 모듈을 사용하여 custom rule의 동작을 테스트한다. NoPrintlnTest 예시처럼, 특정 조건에서 경고가 발생하는지 확인한다. 반면, 테스트 코드는 custom rule의 정확성을 보장하지만, 모든 경우의 수를 커버하기는 어렵다. 따라서, 실제 코드에 적용하여 검증하는 과정이 필요하다.

팀 컨벤션 적용 전략

custom rule을 통해 팀의 코드 스타일품질 기준을 일관되게 유지할 수 있다. 구체적으로, println() 함수 사용 금지처럼, 반복적인 코드 리뷰를 줄이고, 코드 가독성을 향상시킨다. 따라서, custom rule은 지속적인 코드 품질 관리를 위한 핵심 전략이 된다.

detekt에 custom rule 추가하기