STUDY/Others

네이밍 컨벤션 Naming Convention

sinawi95 2022. 3. 25. 17:55
728x90

코딩 컨벤션(Coding Convention)은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다. 쉽게 코드를 이해하고 사용할수 있게 규칙을 정해 가독성을 높이고, 유지보수 비용을 줄이기 위해 사용한다. Python 의 PEP-8 과 같이 언어 자체에서 자주 사용하는 컨벤션도 있고, Airbnb JavaScript Style Guide처럼 회사 자체에서 만든 컨벤션도 있다. 사용하는 언어나 회사에 따라 사용하는(선호하는) 컨벤션이 다르기 때문에 뭐가 더 좋다고 이야기할 순 없다.

Naming Convention은 코딩 컨벤션 중 하나이다. 말 그대로 이름을 짓는 규칙이다. 변수나 함수를 만들 때 이름만 보고도 변수인지 함수인지 쉽게 파악하기 위해 사용한다. 알고리즘 문제를 풀 때는 변수명을 의미 없게 짓는 경우가 많지만 크게 상관이 없다. 

# 1
a = 300
b = 12
c = a * b

# 2
salery_per_month = 300
month = 12
total_salery = salery_per_month * month

1, 2번은 모두 같은 연산을 한다. 하지만 아래 코드가 어떤 걸 수행하려는 건지 쉽게 파악할수 있을 것이다. 일주일 전에 만들었던 본인의 코드를 읽었을 때 이해하기 어려운 경험이 한번쯤은 있지 않았는가. 일주일 전 혹은 그 이전에 쓴 코드들은 내가 썼다고 한들 만들 당시 내 의도를 완전히 이해할 수 없을 것이다. 그러면 남이 내 코드를 보면 혹은 내가 남의 코드를 보면 더 이해하기 힘들 것이다. 따라서 코드를 작성할 땐 의도를 정확하게 표기하는 것이 많은 도움을 줄 것이다.

 

아래는 대표적인 네이밍 컨벤션 케이스이다. 케이스 별 특징을 보고 Python, C/C++, javascript 에서 어떤 방식으로 사용되는지 살펴보자.

 

1. 카멜 표기법 camelCase, lowerCamelCase

띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식이다.
JavaScript에서 대부분(objects, functions, and instances)의 이름에 사용한다. airbnb

 

2. 파스칼 표기법 PascalCase, UpeerCamelCase

첫 단어를 대문자로 시작하는 표기 방식이다. 카멜표기법과 같지만 첫 단어 또한 대문자이다.
JavaScript에서 클래스의 이름에 사용한다. airbnb
python에서도 클래스의 이름에 사용한다. PEP8 (이 글에선 CapWords 규칙이라고 써있으나 파스칼 케이스와 같은 뜻이다.)
C에서 열거형 상수(enum)를 표기할때 사용한다.

 

3. 스네이크 표기법 snake_case

모두 소문자를 사용하고 띄어쓰기 대신 '_'(underbar) 를 사용하는 표기 방식이다. 
Python 에선 변수, 함수, 메서드, 인스턴스 등의 이름에 사용한다. PEP8 (1), PEP8 (2)
C에선 대부분(변수, 변수 타입, 함수 등) 의 이름에 사용한다.

3-1) 대문자 스네이크 표기법 SNAKE_CASE

python에서 상수 이름을 지을 때 사용한다. PEP8
JavaScript에서도 상수 표기를 위해 가끔 사용하나 주로 const camelCase 를 사용한다.
C에서 상수, 열거형 상수, 매크로(상수, 함수)의 이름으로 사용한다. 

더보기
// 상수 선언
int MIN_VAL = 0;

// 열거형
enum PinStateType {
  PIN_OFF,
  PIN_ON
};

// 매크로 함수, 상수
#define MAX(x,y) (x>y)?x:y
#define MAX_LENGTH 100

 

4. 그 외

1) 헝가리안 케이스 typeHungarianCase, type_hungarianCase

카멜 표기법의 맨 앞에 변수의 타입도 적는 표기법이다. 변수의 타입을 이름에 적기 때문에 조금 더 쉽게 사용할 수 있다. 
C/C++에서 가끔 사용한다. 특히 전역 변수를 'g_' 방식으로 사용하기도 한다.

 

2) 케밥 케이스 kebab-case

모두 소문자로 표현하고 띄어쓰기는 '-' 를 사용해서 표기하는 방법이다. 
대부분의 프로그래밍 언어에서 사용하진 못하는 표기방법​이다. ('-'가 minus 로 쓰이기 때문이다.)
주로 HTML 태그의 id, class 값으로 쓰인다. 

 

 

지금까지 네이밍 컨벤션에 대해서 알아보았다. 사실 케밥 케이스 같은 일부 케이스를 제외하면 이름 규칙을 지키지 않아도 프로그램에 거의 영향을 주진 않는다. 하지만 규칙을 적용해서 일관성 있는 코드를 짜고 가독성 좋게 만들기로 하자.


참고한 글

더보기