네이밍 컨벤션(Naming Convention)이란? - 변수의 이름을 짓는 규칙
- 개발로그/잡다한 이야기
- 2024. 9. 12. 01:56
서론
협업을 하면 좋은 변수 이름을 짓기 위해 노력하는 것은 더 이상 선택의 문제가 아니게 된다. 변수 이름은 코드의 가독성, 유지보수성, 그리고 업무의 효율성에 큰 영향을 미치는 중요한 요소이다. 잘못된 변수 이름은 코드를 이해하기 어렵게 만들고, 팀의 생산성을 저하시킬 수 있다. 그래서 개발자들 사이에서는 코딩 시간의 절반 이상을 변수 이름에 짓는데 쓴다는 농담이 있을 정도이다.
이 문제를 해결하기 위한 대표적인 방법들 중 하나가 네이밍 컨벤션(Naming Convention)이다. 변수 이름은 보통 여러 개의 영어 단어들로 이루어지는데, 네이밍 컨벤션은 이 단어들을 어떻게 결합할지에 대한 규칙을 제공한다. 일관성 있는 네이밍 컨벤션을 따르면, 변수 이름만 보고도 그 변수가 어떤 역할을 하는지 쉽게 예측할 수 있다. 이제 프로그래밍에서 사용되는 다양한 네이밍 컨벤션에 대해서 살펴보자.
camelCase(카멜 케이스)
camelCase는 첫 번째 단어만 소문자로 작성하고, 이후 각 단어들의 첫 글자는 대문자로 작성하는 네이밍 컨벤션이다. 중간의 대문자들이 낙타의 혹처럼 생겼다고 해서 camelCase라고 이름이 붙여졌다.
let productCategoryId = 123;
let customerMembershipLevel = "vip";
camelCase는 JavaScript, Java, Swift와 같은 프로그래밍 언어에서 변수명, 함수명, 멤버 변수 등을 정의할 때 많이 사용된다.
PascalCase(파스칼 케이스)
PascalCase는 모든 단어의 첫 글자를 대문자로 작성하는 네이밍 컨벤션이다. 이 규칙은 Pascal 프로그래밍 언어에서 유래된 것으로 알려져 있다.
class ProductCategory {
private CategoryId = 123;
private CategoryName = "vip";
}
PascalCase는 JavaScript, Java, Swift와 같은 언어에서 클래스나 인터페이스 등을 정의할 때 널리 사용된다.
snake_case(스네이크 케이스)
snake_case는 모든 문자를 소문자로 작성하고, 각 단어는 밑줄(”_”)로 구분하는 네이밍 컨벤션이다. 단어들 사이에 있는 밑줄들이 마치 뱀처럼 이어진다고 해서 snake_case라는 이름이 붙었다고 알려져 있다.
int product_category_id = 123;
string customer_membership_level = "vip";
snake_case는 C, C++과 같은 언어에서 변수를 선언하거나 데이터베이스에서 테이블, 컬럼 이름을 작성할 때 주로 사용된다
SCREAMING_SNAKE_CASE(스크리밍 스네이크 케이스)
SCREAMING_SNAKE_CASE는 모든 문자를 대문자로 작성하고, 각 단어를 밑줄(”_”)로 구분하는 네이밍 컨벤션이다. 모든 문자가 대문자라서 마치 외치고(SCREAMING) 있는 것처럼 보인다는 데서 유래됐다.
const MAX_CONNECTIONS = 100;
const DEFAULT_TIMEOUT = 30;
SCREAMING_SNAKE_CASE는 대부분의 프로그래밍 언어에서 변하지 않는 값을 나타내는 상수나 매크로, 그리고 환경 변수를 정의하는 데 사용된다.
kebab-case(케밥 케이스)
kebab-case는 각 단어를 소문자로 작성하고, 단어 사이를 하이픈(”-”)으로 구분하는 네이밍 컨벤션이다. 단어들 사이에 있는 하이픈이 마치 케밥을 끼운 꼬치처럼 해 보여 kebab-case라는 이름이 붙여졌다.
.product-category-container {
background-image: url(https://example.com/product-category/new-arrivals.png);
font-size: 20px;
}
위 예시에서 볼 수 있듯이, kebab-case는 주로 CSS, HTML, URL 경로와 같은 웹 개발에서 널리 사용된다.
그 외
지금까지는 현대 프로그래밍에서 주로 사용되는 네이밍 컨벤션에 대해 알아봤다. 그런데 자료를 조사하다 보니 이 외에도 다양한 네이밍 컨벤션이 있다는 것을 알았다.
이들은 현대 프로그래밍에서 자주 사용되지는 않지만, 네이밍 컨벤션의 발전 역사를 알 수 있어 간략히 소개하려 한다.
flatcase(플랫 케이스)
flatcase는 모든 문자를 소문자로 작성하며, 단어와 단어 사이에 구분 기호를 사용하지 않는 네이밍 컨벤션이다. 주로 과거 저수준 언어나 하드웨어 용량 제한이 있었던 환경에서 사용되었다고 한다.
let productcategoryid = 123;
let customermembershiplevel = "vip";
flatcase는 단어와 단어가 구분되지 않아 직관적인 의미 전달이 어렵다. 이 때문에 코드 가독성을 중요시하는 현대 프로그래밍에서는 거의 사용되지 않는다.
UPPERCASE(어퍼 케이스)
UPPERCASE 또는 SCREAMINGCASE(스크리밍 케이스)는 모든 문자를 대문자로 작성하며, 단어와 단어 사이에 구분 기호를 사용하지 않는 네이밍 컨벤션이다. 이 방식은 주로 상수(Constant)처럼 변경되지 않는 값을 나타낼 때 사용된다.
const MAXCONNECTIONS = 100;
const DEFAULTTIMEOUT = 30;
UPPERCASE는 flatcase와 마찬가지로 단어와 단어를 구분하기 힘들어 가독성이 떨어지며 현대 프로그래밍에서는 거의 사용되지 않는다.
Hungarian Notation (헝가리안 표기법)
Hungarian Notation은 변수명 앞에 그 변수의 자료형을 명시하는 네이밍 컨벤션이다. 이 방식은 변수의 데이터 타입을 직관적으로 파악할 수 있도록 도와준다.
int iAge = 25;
float fPrice = 19.99;
하지만 현대 프로그래밍 언어에서는 자동으로 타입 추론이 되거나, 강타입 언어들인 경우가 대부분이라 그 필요성이 많이 줄어들어 거의 사용하지 않는 네이밍 컨벤션이다.
aLtErNaTiNgCaSe(교차 대소문자 케이스)
Alternating Case는 단어의 각 문자를 대문자와 소문자를 반복적으로 교차시키는 네이밍 컨벤션이다.
let pRoDuCtCaTeGoRyId = 123;
let cUsToMeRmEmBeRsHiPlEvEl = "vip";
Alternating Case는 대소문자를 번갈아가며 작성하기 때문에 가독성이 매우 떨어진다. 이런 이유 때문에 실무 코드에서는 거의 사용되지 않고, 비공식적인 코드나 SNS에서 주로 볼 수 있다.
마무리
지금까지 다양한 네이밍 컨벤션에 대해 알아보았다. 네이밍 컨벤션에는 정답이 없으며, 사용하는 프로그래밍 언어나 협업하는 팀의 문화에 따라 달라질 수 있다.
도구 그 자체보다는 코드의 가독성을 높이고 팀의 생산성을 향상시키는 목적에 중점을 두어, 현재 상황에 맞는 네이밍 컨벤션을 선택하는 것이 중요하다.
'개발로그 > 잡다한 이야기' 카테고리의 다른 글
티스토리에서 MathJax가 동작하지 않을 때 해결방법 (0) | 2024.05.13 |
---|---|
실수 없는 프로그래밍을 위한 몇 가지 방법 (3) | 2016.12.31 |