코드 컨벤션이란 건 무엇일까? 막연히 팀 프로젝트에서 일정한 코드 '규칙'을 정해서, 그러한 규칙에 맞춰서 코딩하는 것을 주로 코드 컨벤션이라고 해왔을 것이다. 규칙들엔 다양한 부분들이 있다.
들여쓰기 (indent)
띄어쓰기 (, 이후 한 칸 / 중괄호, 소괄호 이후 한 칸 등)
변수 작명법
주석 규칙
..
이 중 흔하게 쓰이는 변수 작명법Naming Convention에 대해 살펴보자면 크게 3가지가 있다.
1. 스네이크 표기법 Snake Case
단어 별로 _를 붙여 이어나가는 표기법이다. 변수명 / 함수명 / 데이터 타입 / 네임 스페이스명 등에 사용된다.
올바른 예시 :
snake_case
2. 파스칼 표기법 Pascal Case
파스칼 표기법은 쌍봉낙타 표기법Upper Camel Case라고도 한다. 주로 함수와 클래스명은 파스칼 표기법을 권장한다.
올바른 예시 :
UpperCamelCase
3. 낙타 표기법 Camel Case
두 단어 이상으로 이루어질 때, codingConvention과 같이 단어별로 가장 처음 단어만 대문자로 시작하게 만드는 표기법이다. 주로 자바 프로그래밍에서 권장되는 표기법이다. 단봉낙타 표기법Lower Camel Case이라고도 한다.
올바른 예시 :
lowerCamelCase
이 외에도 헝가리안 표기법 등이 있다. 헝가리안 표기법은 변수 및 함수의 인자 앞에 데이터 타입을 명시하는 코딩 규칙인데, int grade와 같은 변수가 있다면, iGrade와 같이 표기하는 방식이다. 이전에는 IDE가 데이터 타입을 구분하는 것을 어려워했기에 유행했던 규칙이라고 하는데, 현재 MS에서 공식 가이드라인에서 헝가리안 표기법을 사용하지 말 것을 권고하고 있다고 한다. 그런데 이것이 정보처리기사 시험 문제로 나왔었다.
코드 컨벤션 / 코딩 컨벤션을 통해 얻을 수 있는 것은 무엇일까?
"가독성"
가장 큰 것은 가독성일 것이고, 그리고 또 가독성일 것이다. 처음에 회사 내부의 코딩 컨벤션에 적응하는 것에 어려움도 있겠지만, 적응이 되고나면 그만큼 어떠한 기능을 개발할 때는 이런 방식으로 하고 / 또 이렇게 작성되어 있고 하는 것을 깨닫게 된다. 일정한 방식으로 적혀진 코드는 이해하기에 편해진다.
또한 보통 언어별로 권장하는 코드 컨벤션이 있기 때문에 파이썬의 경우에는 PEP8를,
www.python.org/dev/peps/pep-0008/
자바의 경우에는 오라클에서 정한 코딩 컨벤션 규칙이 있는데, 아래와 같다.
www.oracle.com/java/technologies/javase/codeconventions-contents.html
린트Lint, 린터Linter
린트(lint) 또는 린터(linter)는 소스 코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 구조체에 표시(flag)를 달아놓기 위한 도구들을 가리킨다.
코틀린의 경우엔 ktLint를 사용한다. 또한 권장하는 방식 또한 존재하는데, 이는 자바스크립트의 esLint와 비슷한 역할을 하는 툴이다. 컨벤션 규칙을 작성하고, 해당 규칙에 맞지 않는 부분이 있다면 알려주기도 하고, 강제로 수정해주기도 한다.
참고 자료
'IT > Teckweek' 카테고리의 다른 글
딥 링크Deep Link (0) | 2021.02.05 |
---|---|
그로스 해킹이란? (0) | 2021.01.21 |
해시 충돌 (0) | 2020.12.27 |
DI (Dependency Injection)란? (0) | 2020.12.21 |
안드로이드 클린 아키텍처 (0) | 2020.12.18 |
댓글