코딩 네이밍 컨벤션의 핵심 요약
프로그래밍에서 식별자(변수, 함수, 클래스 등)의 이름을 짓는 명명 규칙을 코딩 네이밍 컨벤션(Naming Convention)이라고 부른다. 여러 개발자가 함께 작업하는 환경에서 일관된 코딩 네이밍 컨벤션을 유지하는 것은 코드의 가독성을 높이고 유지보수 비용을 줄이는 핵심 요소이다. 단순히 개인의 취향 문제가 아니라, Python의 PEP 8이나 Google Style Guide와 같은 공인된 가이드라인에 기반한 개발자 간의 약속이다.
주요 케이스별 표기 공식
개발 환경에서는 식별자 이름에 공백(Space)을 사용할 수 없으므로, 여러 단어를 조합할 때 특정한 공식을 따른다. 대표적인 네이밍 케이스 4가지의 정의와 주요 사용 환경을 정리했다.
1. 카멜 케이스 (camelCase)
첫 단어는 소문자로 시작하고, 이어지는 단어의 첫 글자는 대문자로 표기하는 방식이다. 카멜 케이스(Camel case)라는 이름은 단어의 모양이 낙타의 혹을 닮았다고 하여 붙여졌다.
- 공식: 단어1 + 단어2(첫 글자 대문자) + 단어3(첫 글자 대문자)
- 주요 사용처: JavaScript, Java의 변수명 및 함수명 (예:
encodeURIComponent,myVariableName)
2. 파스칼 케이스 (PascalCase)
카멜 케이스와 유사하지만, 첫 단어의 첫 글자도 대문자로 시작하는 방식이다. 쌍봉낙타 표기법(Upper Camel Case)이라고도 부른다.
- 공식: 단어1(첫 글자 대문자) + 단어2(첫 글자 대문자) + 단어3(첫 글자 대문자)
- 주요 사용처: 대부분의 객체 지향 언어에서 클래스명 (예:
ArrayBuffer,UserAccount)
3. 스네이크 케이스 (snake_case)
모든 단어를 소문자로 작성하고, 단어와 단어 사이를 언더스코어(_)로 연결하는 방식이다. 바닥을 기어가는 뱀의 모습과 비슷하여 명명되었다.
- 공식: 단어1 +
_+ 단어2 +_+ 단어3 - 주요 사용처: Python(PEP 8 권장), Ruby의 변수명 및 함수명, 데이터베이스 컬럼명 (예:
user_login_count)
4. 케밥 케이스 (kebab-case)
모든 단어를 소문자로 작성하고, 단어 사이를 하이픈(-)으로 연결한다. 케밥 케이스(Kebab case)는 꼬치구이(케밥)에 고기가 꿰어져 있는 모습에서 유래했다.
- 공식: 단어1 +
-+ 단어2 +-+ 단어3 - 주요 사용처: HTML 속성(
data-*,aria-label), CSS 속성(background-color), URL 경로 (대부분의 프로그래밍 언어에서는 하이픈을 뺄셈 기호로 인식하므로 변수명으로는 사용할 수 없다.)
네이밍 컨벤션 비교 및 실제 적용 예시
동일한 구문(예: create new user account)이 각 컨벤션에 따라 어떻게 변환되는지 비교해보자.
| 케이스 종류 | 변환 예시 | 특징 및 한계점 |
|---|---|---|
| 카멜 케이스 | createNewUserAccount | JavaScript/Java 표준 변수명. 단어가 많아지면 가독성이 다소 떨어질 수 있음. |
| 파스칼 케이스 | CreateNewUserAccount | 클래스, 생성자 이름에 적합. 일반 변수명으로는 잘 쓰지 않음. |
| 스네이크 케이스 | create_new_user_account | 단어 구분이 가장 명확함. Python 및 DB 표준. 타이핑 시 특수기호 입력이 번거로울 수 있음. |
| 케밥 케이스 | create-new-user-account | URL 및 CSS 표준. 대부분의 언어에서 뺄셈으로 인식되어 변수명으로 사용 불가. |
웹 개발을 한다면 JavaScript 변수에는 카멜 케이스를, CSS와 URL에는 케밥 케이스를 선택하는 것이 표준이다. 데이터 분석가나 백엔드 개발자로서 Python과 SQL을 주로 다루며 방대한 리뷰의 키워드 빈도수 분석과 같은 작업을 수행한다면 스네이크 케이스를 기본으로 사용하는 것이 좋다.
기존에 작성된 수천 줄의 코드나 데이터셋의 명명 규칙을 일괄 변경해야 한다면, 수작업 대신 대소문자 변환기를 활용해 원클릭으로 안전하게 변환하자. 회원가입이나 결제 없이 무료로 횟수 제한 없이 사용할 수 있으며, 입력한 텍스트 데이터가 외부 서버로 전송되지 않고 100% 브라우저 로컬 환경에서 연산되므로 민감한 사내 소스코드를 다룰 때도 안심할 수 있다.
자주 헷갈리는 부분
- 상수 표기법 (SCREAMING_SNAKE_CASE): 스네이크 케이스의 변형으로, 모든 알파벳을 대문자로 작성하고 언더스코어로 연결한다. 프로그램 내에서 값이 변하지 않는 상수(Constant)를 정의할 때 전역적으로 쓰이는 규칙이다. (예:
MAX_UPLOAD_SIZE) - 약어의 대소문자 처리: XML, HTTP와 같은 약어가 포함될 때 카멜 케이스 적용이 모호할 수 있다.
XMLHttpRequest처럼 첫 글자만 대문자로 하거나XMLHTTPRequest처럼 모두 대문자로 하는 두 가지 방식이 혼용된다. 자신이 속해 있는 조직의 스타일 가이드를 따르는 것이 가장 안전하다.