심볼 이름 짓기 규칙

2022년 10월 22일 수정

Naming Convention

네이밍 컨벤션은 번역 그대로 "이름 짓기 규칙"이라는 의미다. 심볼(Symbol) 즉 프로그래밍에서 함수나 변수, 클래스, 메서드, 프로퍼티 등등 그냥 이름 그 자체를 지을 때 일정한 규칙으로 지어야 가독성이 높아진다. 이런 규칙은 언어 별로 자주 쓰이는 것이 있을 수 있고 혹은 사내에서 규칙을 정의하기도 한다.

자주 쓰이는 규칙들

개인적인 체감 기준으로 많이 쓰이는 규칙을 정리해보자. 코딩에 익숙하다면 아마도 제목만 봐도 뭘 이야기하는지 알 수 있을 것이다. 당연하겠지만 이 규칙들은 용도에 따라 독립적인 경우도 있어서 혼합되어 쓰이기도 한다.

UPPERCASE

Upper Case는 모든 문자를 대문자(uppercase)로만 표기하는 방식이다. C 언어에서 종종 쓰이는 경우를 봤지만, 단어가 많아질 수록 가독성이 나빠지기 때문에 개인적으론 안 쓰는 편이 좋다고 생각된다.

MACRO_CASE, CONSTANT_CASE

Macro Case는 Upper Case와 비슷하게 전부를 대문자로 표현하지만 단어와 단어 사이에 밑줄을 넣어서 단어를 구분할 수 있게 표현한다. 대체로 상수(constant)나 매크로(macro) 혹은 외부에서 입력되는 변수의 이름 용도로 많이 쓰여서 이런 이름으로 불린다. 전통적으로 C 언어에서 부터도 많이 쓰였고 대부분의 언어에서도 쓰이는 곳이 있다. 다른 이름으로 Screaming Snake Case라고 부르기도 한다.

camelCase

Camel Case는 단어를 구분하기 편하도록 첫 단어를 제외한 모든 단어의 첫 글자를 대문자로 적는 규칙이다. 요즘은 변수나 메서드, 프로퍼티 등 상당히 많은 부분에서 채용되는 인기있는 규칙이다. Swift에서도 일반적인 규칙으로 쓰인다.

PascalCase, UpperCamelCase

Pascal Case는 Camel Case와 비슷하지만 첫 단어의 첫 문자를 대문자로 표기하는 방식이다. Java 등에서 클래스 이름에 종종 보이는 규칙인데 현재는 클래스 규격을 지원하는 많은 언어에서도 클래스 이름을 짓는데 자주 사용된다. Python이나 Swift 등에서도 쓰인다.

snake_case

Sname Case는 단어를 소문자로만 적고 공백을 밑줄(underscore)로 표현하는 방식이다. 보통 Python에서 많이 쓰인다.

kebab-case, dash-case

Kebab Case는 튀르키예(구 터키)의 케밥이라는 요리 즉 거대한 꼬치에 거대한 고기가 끼어져 있는 모양을 연상하면 된다. 어쩌면 그냥 꼬치구이 모양으로 설명하는 편이 나을 지도 모르겠다. 어쨌든 모든 단어는 소문자로 적고 단어 사이는 줄(dash)을 넣은 방식이다. 그래서 Dash Case 라고 하기도 한다. Lisp 등에서 주로 사용되기 때문에 Lisp Case 라고 불리기도 한다.

유감스럽게도 줄(dash)을 특정 연산자로 사용하는 언어가 많아서 대중적이진 않다. 하지만 파일 이름 등 여러 분야에서 쓸 수 있기 때문에 마냥 무시하기엔 의외로 제법 괜찮은 컨벤션이다.