본문 바로가기
ELSE

코딩 컨벤션

by JiGyeong 2021. 9. 7.

프로젝트 기간동안 많은 개발자들과 함께 개발을 진행하며 코드스타일의 일체화에 대해 중요성을 깨닫게 되었다.

 

컨벤션은 유지보수에 투자되는 비용을 최소화하기 위해 통일된 코드 작성법을 제시한다. 코드를 최초로 작성한 사람이 끝까지 유지보수할 확률은 매우 낮다. 따라서, 최초 개발자가 아닌 사람도 코드를 빠르고 정확하게 이해할 수 있도록 작성하는 것은 코드의 유지보수 비용을 절감하고 업무 효율을 높이는 데 결정적인 역할을 한다.

Javascript

네이버 - https://github.com/naver/eslint-config-naver/blob/master/STYLE_GUIDE.md

AirBnB - https://github.com/airbnb/javascript

Toast - https://ui.toast.com/fe-guide/ko_CODING-CONVENTION

ESLint와 같은 린터를 사용한다는 가정하에 린터로 검출할 수 없는 모호한 부분을 가이드한다.

ESLint

ESLint는 JavaScript, JSX의 정적 분석 도구로 오픈 소스 프로젝트이다. 코드를 분석해 문법적인 오류나 안티 패턴을 찾아주고 일관된 코드 스타일로 작성하도록 도와준다. JSLint, JSHint와 같이 다른 JavaScript 정적 분석 도구들도 있지만, ESLint가 커스터마이징이 쉽고 확장성이 뛰어나 많이 쓰이고 있는 추세이다. ESLint는 스타일 가이드를 좀 더 편리하게 적용하기 위해 사용하기도 하는데, 외부에 공개되어 많은 개발자가 사용 중인 Airbnb Style GuideGoogle Style Guide 가 그 대표적인 예이다.

Tool 사용 사례

ESLint, ESLint 컨벤션 설치

var 나 console 경고 예시

커스터 마이징 가능

Java

컨벤션 규칙정의

Java

네이버 - https://naver.github.io/hackday-conventions-java/

NHN - https://nuli.navercorp.com/data/convention/NHN_Coding_Conventions_for_Markup_Languages.pdf

InteliJ Plugin (Check Style ) 추가 가능

컨벤션 어길경우 아래와 같이 경고 표시

다양한 IDE, Editor 에서는..

EditorConfig

팀원 마다 다른 editor 를 쓰는 경우, 팀마다 다른 규칙을 쓰는 경우

.editorconfig config 파일 추가로 프로젝트마다의 규칙을 설정한다.