코딩하는 개굴이

[Kotlin] KtLint 로 클린한 코드 작성하기 본문

안드로이드/KOTLIN

[Kotlin] KtLint 로 클린한 코드 작성하기

개굴이모자 2023. 1. 30. 01:28
반응형

여러 사람들과 동일한 프로젝트로 협업을 진행하다보면, 어떤 사람들은 엔터를 어디에 치고 줄바꿈은 어떻게 하는지 이런 사소한 것들부터 전반적인 구현 방식이 달라지는 경우가 종종 생긴다.

 

이를 통일성 있게 만들고 가독성과 유지보수성을 높이기 위해서 팀에서 문서를 공유하거나, PR 등의 커뮤니케이션으로 개발자들이 직접 확인하기도 하지만, 하나하나 세세히 확인하기란 불가능에 가깝다.

 

이런 경우, 특정 언어 혹은 가이드의 컨벤션을 따를 수 있도록 하고 구조적인 문제가 없는지 검사해주는 Lint 도구를 사용할 수 있다.

 

그 중에서도 KtLint 라는 것을 Android 프로젝트에 적용하는 방법에 대해 이번 포스팅에서 정리해보고자 한다.

 

 

KtLint란?

KtLint 는 Kotlin 언어의 공식 컨벤션을 준수하여 코드가 작성될 수 있도록 스타일을 검사해주는 도구이다.

KtLint 를 사용해 검사를 할 수 있는 방법은 크게 2가지 방법이 있다.

  • 직접 설치하여 수행하기
  • gradle 에 KtLint 플러그인 의존성 추가하기

 

 

KtLint 직접 설치하여 검사하기

설치를 우선 수행해보자. 

$ brew install ktlint

// mac M1
$ arch -arm64 brew install ktlint

 

(생각보다는 오래걸리는데, 놀라지 말자 💦)
위처럼 brew 를 이용해 설치할 수도 있고, 아래처럼 github 에서 직접 ktlint 파일을 다운로드 받아 해당 위치에서 검사할 파일 경로를 입력해 수행할 수도 있다.

 

다운받은 ktlint 는 아래와 같이 명령어를 입력해 스타일 검사를 진행할 수 있다.

$ ktlint "filepath/filename.kt"

예시로, 정리가 되지 않은 조금 부끄러운 코드를 검사한 결과 아래와 같이 나오게 되고 이를 보고 컨벤션에 맞게 수정하면 된다.

 

 

 

 

KtLint 를 Gradle 의존성에 추가하여 사용하기

현업에서 자주 사용되는 방법은 gradle 에 의존성을 추가하는 방법이다.

해당 포스팅에서는 많이 사용되고 있는 jilleitschuh-gradle-ktlint 를 추가해보도록 하자.

 

Intellij / AndroidStudio 를 기준으로 작성되었다.

 

plugins {
	....
	id("org.jlleitschuh.gradle.ktlint") version "11.1.0"
}

이렇게 추가해줬으면 돌리는 방법은 간단하다.

아래와 같이 수행하면, 문제가 되는 부분에 대해 와다다다 리스팅해준다.

$ ./gradlew ktlintCheck

프로젝트에 대해 수행해주기 때문에, 일괄적으로 파악할 수 있다.

 

 

 

추가로, 해당 방법이 현업에서 많이 쓰이는 이유는 ktLint 는 버전에 따라 수행되는 결과가 달라질 수 있으나, .editorConfig 에 팀의 룰을 기입해두면 해당 룰에 맞게 동일한 결과를 어떤 환경에서도 산출할 수 있기 때문이다.

 

관련 룰은 EditorConfig 에서 참고하도록 하자.

 

예를들어 위 문서를 참고하여 아래와 같이 작성했다면, 돌린 결과는 해당 룰을 적용하여 나오게 되는 것이다. 팀의 모든 개발자가 따로 직접 보지 않아도 커스텀된 공통적인 컨벤션을 적용할 수 있다.

root = true

# 모든 파일에 대해 적용한다.
[*]
charset = utf-8
end_of_line = lf
indent_style = tab
# 인덴트 사이즈는 4이다.
indent_size = 4

 

 

커밋 전에 수행하여 휴먼 에러를 줄이고, 클린 코드가 몸에 익게 KtLint 와 친숙해지도록 하자!

 

 

 

 

 

참고 링크

반응형
Comments