-
Java Lint 기능을 사용해서 formatting 강제하기JAVA/자바설치 2024. 5. 3. 23:48
1. 배경
- 클린코드 책을 보면 한 챕터를 formatting(형식)에 관한 이야기를 한다.
- 요약하자면 작성한 소스코드에 formatting(들여쓰기, 줄바꿈, 띄어쓰기 . . . 등등)이 굉장히 중요하다고 한다.
- formatting이 코드를 읽을때 가독성에 영향을 주고 이는 뇌에 영향을 줘서 생산성에도 영향이 간다.
- formatting은 아키텍처와 같이 한번 굳어지면 리펙토링이나 변경이 불가능하다.
- 기존 코드 formatting을 모방해서 작성할 수 밖에 없고, 이를 지키지 않고 여러명이 각자의 style로 작성하게되면 카오스가 되기 때문.
2. 해결책 Linter 그리고 Sonar Lint, Sonar Cube
- formatting을 clean하게 유지하기 위해, 개발자들은 강제로 formatting을 정해진 규칙으로 바꾸는 Linter가 등장했다.
- Lint란?
- 소스 코드를 검사해서, 프로그래밍 언어의 문법 및 스타일 가이드를 준수하도록 강제한다.
- 일관된 코딩 스타일로 협업 강화와 코드 품질 향상을 목적으로 한다.
- 참고 : https://subicura.com/2016/07/11/coding-convention.html
- Java에는 이런 formatting을 clean하게 유지하게하는 대표적 도구 Sonar Lint가 있다.
- 인텔리제이에 설치하면 코딩중에 노란줄로 코드 악취를 잡아주는데 안쓸 이유가 없다.
- SonarCude라는 정적 코드 분석 도구를 제작한 곳에서 만든 것으로 무료다.
- (코딩할때는 SonarLint와 코딩하고, 완성된 코드를 build할때 SonarCude로 정적 코드 분석하자가 이 회사의 전략인듯하다.)
- 밑에 예시를 보면 == 보다 equals를 써라 같이 코딩할때 alert로 알려준다.
3. JS, Kotlin에서 맛본 Lint
- Java의 Lint는 살짝 아쉽다.
- JS는 prettier나 eslint가 실시간으로 자동 적용 된다던가, cmd에서 스크립트 명령어로 포멧팅을 지원한다.
- Kotlin에서는 ktlint가 있어 명령어로 자동 적용 할 수 있다. (https://github.com/pinterest/ktlint)
4. java spotless
- Java에도 spotless라고 빌드시 lint를 지원하는 툴이 있다 ( https://github.com/diffplug/spotless/tree/main/plugin-gradle)
- 동작하는 영상은 여기 참고할 수 있다. https://www.youtube.com/watch?v=efeWVWApGYg
- 인텔리제이 기능으로 lint를 하는 방법도 있다. (https://yeoon.tistory.com/116)
반응형'JAVA > 자바설치' 카테고리의 다른 글
sdkman env 사용해서 java, gradle, maven 버전 프로젝트별로 설정 (0) 2024.05.03 인텔리제이 명령어 정리 (0) 2023.05.09 OpenJDK란? JDK 종류와 LTS 버전 (0) 2022.08.19 [Mac 개발환경 구성]- sdkman 으로 jdk 병렬로 관리(설치와 사용법) (3) 2022.03.05