관리 메뉴

피터의 개발이야기

[Spring] Ktlint란, 코딩 컨벤션 본문

Programming/Spring

[Spring] Ktlint란, 코딩 컨벤션

기록하는 백앤드개발자 2024. 6. 22. 10:10
반응형

ㅁ 들어가며

ㅇ 코틀린 프로젝트에서 개발 중에 KtLint를 알게 되었다.

ㅇ 에전에 React 개발 시 빌드할 때에 eslint를 사용한 적이 있다.

ㅇ 이와 비슷하게 백엔드에도 코드의 스타일 문제를 검사하는 정적 분석 도구인 KtLint이다.

깔끔한 포맷팅을 위한 ktlint 적용하기 (feat. kotlin)을 인용하여 공부한 내용을 정리하였다.

 

ㅁ Ktlint란?

ㅇ KtLint는 Kotlin 언어의 공식 코드 컨벤션을 준수하도록 코드 스타일을 검사하고 문제점을 맞춰주는 정적 분석 도구이다.

 

ㅁ 주요 기능

ㅇ Kotlin 공식 Code Convention을 기반으로 코드 스타일을 검사한다.

ㅇ 대표적 사용방법

 ㄴ brew로 설치하여 CLI에서 스타일 검사

 ㄴ Gradle을 통해 빌드 과정에서 검사

 ㄴ Git hook으로 커밋 전에 코드 스타일을 검사

 ㄴ GitAction을 통해 커밋 전에 스타일을 검사

 

ㅇ 인텔리제이에 플러그로 설치하여 코드 스타일 검사도 가능.

  ㄴ 관련하여 예정 작성 글, [JAVA] 코드 컨벤션의 필요성,IntellJ 코드 컨벤션 설정

ㅁ Gradle 설정 방법

gradle 설정

// build.gradle(.kts)
plugins {
    id("org.jlleitschuh.gradle.ktlint") version "12.1.1" // 최신 버전으로
}

ㅇ Gradle에  jlleitschuh-gradle-ktlint 플러그인을 추가

 

ㅇ 최신 버전 정보는 Git - jlleitschuh-gradle-ktlint  또는 plugins.gradle.org에서 확인

 

 

editorconfig 파일 설정

# top-most EditorConfig file
root = true


[*]
charset = utf-8
end_of_line = lf # 마지막 뉴라인
indent_style = space # 들여쓰기
indent_size = 4
insert_final_newline = true
max_line_length = 120 # 라인 총 길이
tab_width = 4
disabled_rules = no-wildcard-imports,import-ordering,comment-spacing

ㅇ 자세한 정보는 IntelliJ - EditorConfig 문서 참조

https://editorconfig.org/도 참조하면 좋음 

 

태스크 실행

./gradlew ktlintCheck // 코드 스타일 검사
./gradlew ktlintFormat // 코드 스타일 자동 수정

 

빌드 시 실행

// build.gradle(.kts)
ktlint {
    android.set(true) // 안드로이드 프로젝트인 경우
    reporters.set(["CHECKSTYLE", "PLAIN_TEXT_FILE"]) // 보고서 형식 지정
}

tasks.getByName("ktlint").setGroup("verification") // 검증 그룹에 추가
tasks.getByName("ktlintFormat").setGroup("formatting") // 포맷팅 그룹에 추가

ㅇ build.gradle(.kts)에 설정한다.

 

ㅁ 함께 보면 좋은 사이트

깔끔한 포맷팅을 위한 ktlint 적용하기 (feat. kotlin)

ktlint로 Kotlin 공식 코딩 컨벤션 맞추기

반응형
Comments