고기 대신 SW 한점/DEVOPS

Code Convention

지식한점 2022. 9. 29. 14:46
반응형

‘Code Convention(코드 컨벤션)’이란, 특정 프로그래밍 언어에 권장되는 프로그래밍 스타일에 대한 가이드를 의미합니다.
소프트웨어 유지보수성이 요구되는 Microservice에서는 반드시 설정 및 자동화하기를 권장합니다.

요약

개발팀이 얻는 이익

  1. 팀 내 표준 코딩 방식 적용: 코드 품질 향상화 기반 제공
  2. 코드 변경 복잡도 감소: 리랙토링 시 형식이 아닌 내용에 집중할 수 있도록 하여 커뮤니케이션 비용 절약
  3. 의미있는 코드 볼륨 정보 제공: 일관된 형식으로 변경 사항이 저장된 커밋에서 DevOps 지표 수집 가능

도입시 고려할 지점

  1. 오픈소스 검토: 해당 언어의 커뮤니티에서 공통적으로 선택하는 옵션 고려
  2. 개발팀이 선택한 패키지 매니저와의 연동 여부: build 프로세스로 자동화할 수 있도록 적용
  3. 개발팀이 선택한 IDE와의 연동 여부: 개발시 자동으로 코드에 자동으로 적용할 수 있는지 여부

Java 기준 검토 결과

Spring Framework 기반 Application을 위해 개발팀의 언어는 Java 가 Main Language 입니다.
따라서, Java 진영에서 가장 인지도가 높고 계속 유지 관리되는 컨벤션을 우선 검토합니다.

 

Tools CheckStyle Spotless EditorConfig CodeStyle
Type Inspector (Format, Analysis) Formatter Formatter Formatter
GitHub Star 6.9k 2.4k 2.6k -
Major Version gradle/5.62.0 (2022.03) gradle/6.3.0 (2022.02) gradle/0.0.3 (2018.10) -
Plugin (PKG) The Checksytle Plugin Spotless plugin for Gradle editorconfig-gradle-plugin -
Plugin (IDE) CheckStyle-IDEA Spotless Gradle EditorConfig + Guide (bundle)
Style List google-java-format (기본) google-java-format 외 다수 Universal IDE Styling -
Config Type xml-file styling
(CheckStyle Scheme)
goovy styling .editorconfig file  
Pros
  • 엄격한 Google Style 적용
  • 보고서 생성 지원
  • IDE + Git 연동 자체 훅 지원
  • 손쉬운 Google Style 적용 
  • Reformat 기본 제공
  • 외부 언어/패키지 확장성
  • IDE 전체 통합 설정 공유 가능
-
Cons
  • 정밀한 Google Style 강제
  • 방대한 튜닝: 적용 난이도 높음
  • Google/Sun 외 선택 불가 
  • 고도화된 Gradle 프로젝트 적합
  • Gradle 기반 Reformat 필요
  • 기본 Google Style만 제어
  • 튜닝 시 추가 패키지 개발 필요
  • 기초적인 통합 설정만 제공 
  • 2018년 이후 추가 활동 없음
-
References
Recommend 조직 내 전사 규칙 생성시 추천 빠른 통합을 위한 쉬운 도입 보조 필요시 도입 동일한 스키마를 IDE 내 적용 권장

** 상기 글은 특정 page에서 참조하였습니다.
** 참조. 주요 Java Code Styling List

반응형