화요일 오후 네 시, 리뷰 자리에서 당신은 브라우저 탭 두 개를 번갈아 봅니다. 오른쪽에는 짧고 경쾌한 이름들이, 왼쪽에는 길지만 차분한 이름들이 늘어서 있습니다. 옆자리 민수가 “둘 다 돌아가긴 해요”라고 말하는 순간, 당신의 눈은 조건식 하나에서 멈춥니다. 이름은 짧은데, 의미를 해석하려면 위아래 문맥을 계속 스크롤해야 합니다. 커서가 움직일수록 판단이 늦어지고, 결국 긴 이름 쪽이 더 빨라 보이기 시작합니다.
길이가 아니라 해석 시간을 줄이는 쪽이 옳다
핵심은 타이핑의 속도가 아니라 독자가 다시 생각하는 횟수입니다. 짧은 이름은 손가락을 절약하지만, 독자의 머릿속에서 의미 복원을 요구합니다. 반대로 충분히 설명적인 이름은 무엇인지, 언제의 것인지, 단위가 무엇인지까지 한 번에 말합니다. 그래서 다음 줄로 넘어갈 때 멈칫이 줄어듭니다. 길다 짧다의 문제가 아니라, 읽는 사람이 멈추지 않게 만드는지가 기준이 됩니다.
어디서 쓰는 값인지가 길이를 결정한다
결제 흐름을 본다고 해봅시다. 단순히 금액이면 짧아도 괜찮아 보이지만, 할인 전인지, 세금 포함인지, 최종인지가 섞이는 순간 짧은 이름은 독자를 배신합니다. 이럴 때는 시점과 상태를 붙여서 읽히는 문장을 만듭니다. 또 조건을 담는 값은 질문처럼 들리면 바로 이해됩니다. 길게 늘어뜨리자는 뜻이 아니라, 한 번의 해석으로 끝나게 하자는 선택입니다.
단서가 배열되면 부담이 줄어든다
긴 이름이 답답한 건 대개 단서의 순서가 엉켜서입니다. 핵심 명사, 변환이나 상태, 단위나 시점 순으로 붙이면 눈이 자연스럽게 따라갑니다. 사람은 앞부분에서 이미 대상을 잡고 뒤에서 맥락을 보완하는 리듬에 익숙합니다. 그래서 핵심이 뒤에 숨으면 길이는 길이대로 늘고, 이해는 늦어집니다. 길다면 이유가 보이게, 짧다면 혼동이 없게 정리해야 합니다.
이름의 길이가 협업의 속도를 만든다
리뷰 때 짧은 이름은 “여기 뭐였죠”라는 질문을 자주 부릅니다. 맥락을 설명하는 시간이 길어지고, 버그가 나면 원인을 좁히는 데 더디게 됩니다. 반대로 설명적인 이름은 리뷰어가 한눈에 역할을 파악하게 만듭니다. 주석이 거들 뿐, 이름만으로도 흐름이 보입니다. 면접이나 온보딩에서도 마찬가지입니다. 이름을 짓는 태도만으로 모델링 수준과 문제 이해가 드러납니다. 팀의 속도는 이런 작은 멈칫을 얼마나 줄였는지에서 갈립니다.
의미를 압축하는 연습이 필요하다
무턱대고 줄이면 삭제가 되고, 무턱대고 늘리면 장식이 됩니다. 줄일 때는 공통어와 중복 용어를 걷어내고, 늘릴 때는 상태와 시점을 보강합니다. 서로 다른 개념이 충돌할 때는 팀의 구어체를 맞춥니다. 결과인지 과정인지, 원본인지 가공본인지 같은 말버릇이 합의되면, 길이는 자연히 비슷한 범위로 수렴합니다. 결국 읽는 경험이 같아야 길이의 감각도 같아집니다.
내일 읽힐 이름을 고르자
지금 당장은 키를 덜 치는 게 달콤합니다. 하지만 하루만 지나도 당신조차 기억이 흐려집니다. 그래서 타자수보다 멈춤수를 줄이는 이름을 고르는 편이 안전합니다. 조건이라면 질문처럼, 금액과 시간이라면 단위를, 중간 산출이라면 단계나 상태를 붙이는 식으로요. 길이는 목적이 아닙니다. 이해를 한 번에 끝내는 이름, 그게 가장 오래가는 속도입니다.
가독성
의미 있는 이름
변수 이름을 정할 때 가장 중요한 것은 가독성입니다. 변수 이름이 의미를 명확하게 전달해야 코드를 읽는 사람이 쉽게 이해할 수 있습니다.
의미 있는 이름을 사용하면, 코드를 처음 접하는 사람도 변수의 용도를 쉽게 파악할 수 있어요. 예를 들어, 사용자의 나이를 저장하는 변수의 경우 ‘userAge’와 같이 직관적인 이름을 사용하는 것이 좋습니다. 이렇게 하면, 변수 이름만 봐도 어떤 데이터가 저장되어 있는지 쉽게 알 수 있죠.
축약어 사용 최소화
변수 이름을 짓는 데 있어 축약어 사용을 최소화하는 것도 중요합니다. 축약어를 사용하면 이름이 간결해지지만, 가독성이 떨어질 수 있어요. 예를 들어, ‘accumulator’를 ‘acc’로 줄이는 경우, 코드를 읽는 사람이 ‘acc’가 무엇을 의미하는지 한 번에 이해하기 어려울 수 있습니다.
축약어를 사용하는 대신, 전체 단어를 사용하여 변수 이름을 지으면 더 명확한 의미 전달이 가능합니다. 물론, 널리 알려진 축약어나 단어는 예외로 취급할 수 있습니다. (예: ‘id’는 ‘identifier’의 줄임말로 널리 사용되므로 충분히 이해 가능하다고 볼 수 있죠.)
일관된 네이밍 규칙
일관된 네이밍 규칙을 사용하면 코드의 가독성이 높아집니다. 프로젝트 전체에서 동일한 규칙을 따르면, 새로운 코드를 읽는 사람이나 다른 팀원들이 더 쉽게 이해할 수 있어요. 일관성 있는 네이밍은 변수뿐만 아니라 함수, 클래스 등 모든 코드 작성에 적용되어야 합니다.
예를 들어, 모든 변수에 카멜 케이스(camelCase)를 사용하고 있다면, 새로운 변수도 동일한 방식으로 지어야 합니다.

형식
카멜 케이스 (camelCase)
카멜 케이스는 변수 이름의 각 단어의 첫 글자를 대문자로 표기하는 방식입니다. 단, 첫 단어의 첫 글자는 소문자로 표기합니다. 이 방식은 자바, 자바스크립트 등 여러 프로그래밍 언어에서 권장되는 네이밍 규칙입니다.
예를 들어, ‘userName’이나 ‘totalPrice’처럼 표기하는 것이 카멜 케이스입니다. 카멜 케이스를 사용하면 단어 사이의 경계를 명확하게 표시할 수 있어 가독성이 좋아집니다.
스네이크 케이스 (snake_case)
스네이크 케이스는 변수 이름의 각 단어를 소문자로 표기하고, 단어 사이에 언더스코어(_)를 사용하는 방식입니다. 이 방식은 파이썬, 루비 등 여러 프로그래밍 언어에서 권장되는 네이밍 규칙입니다. 예를 들어, ‘user_name’이나 ‘total_price’처럼 표기하는 것이 스네이크 케이스입니다.
스네이크 케이스를 사용하면 단어 사이의 경계를 명확하게 표시할 수 있으며, 모든 문자를 소문자로 표기하는 것이 특징입니다.
파스칼 케이스 (PascalCase)
파스칼 케이스는 카멜 케이스와 비슷하지만, 첫 단어의 첫 글자도 대문자로 표기하는 방식입니다. 이 방식은 클래스 이름 등을 지을 때 사용되는 경우가 많습니다.
예를 들어, ‘UserName’이나 ‘TotalPrice’처럼 표기하는 것이 파스칼 케이스입니다. 파스칼 케이스를 사용하면 단어 사이의 경계를 명확하게 표시할 수 있고, 변수와 클래스를 구분하기 쉬워집니다.
케밥 케이스 (kebab-case)
케밥 케이스는 변수 이름의 각 단어를 소문자로 표기하고, 단어 사이에 하이픈(-)을 사용하는 방식입니다. 이 방식은 HTML, CSS 등 웹 개발에서 주로 사용됩니다. 예를 들어, ‘user-name’이나 ‘total-price’처럼 표기하는 것이 케밥 케이스입니다.
케밥 케이스를 사용하면 단어 사이의 경계를 명확하게 표시할 수 있지만, 일부 프로그래밍 언어에서는 하이픈을 연산자로 인식하기 때문에 사용할 수 없는 경우도 있습니다.

변수 유형에 따른 이름
상수 – 대문자와 언더스코어 사용
상수는 변하지 않는 값을 저장하는 변수로, 대문자와 언더스코어를 사용하여 이름을 지어야 합니다. 이렇게 하면 상수와 일반 변수를 쉽게 구분할 수 있습니다.
예를 들어, ‘MAX_SIZE’, ‘PI’ 등과 같이 표기하는 것이 좋습니다. 상수를 대문자로 표기하는 것은 프로그래밍 언어의 관례이며, 코드를 읽는 사람이 상수임을 쉽게 인지할 수 있도록 합니다.
불린 변수 – “is”, “has” 등의 접두사 사용
불린 변수는 참(true) 또는 거짓(false) 값을 저장하는 변수로, “is”, “has” 등의 접두사를 사용하여 이름을 지어야 합니다. 이렇게 하면 불린 변수임을 쉽게 알 수 있고, 코드의 가독성이 높아집니다.
예를 들어, ‘isValid’, ‘hasChildren’ 등과 같이 표기하는 것이 좋습니다. 불린 변수의 이름은 질문 형태로 표현되기도 하며, 그 결과로 참 또는 거짓이 반환되는 것을 의미합니다.
반복자 – “i”, “j”, “k” 등 간단한 이름 사용
반복자는 반복문에서 사용되는 변수로, 일반적으로 “i”, “j”, “k”와 같은 간단한 이름을 사용합니다. 이렇게 하면 반복자임을 쉽게 알 수 있고, 코드를 간결하게 유지할 수 있습니다.
예를 들어, ‘for (int i = 0; i < length; i++)’와 같이 표기하는 것이 좋습니다. 반복자는 보통 숫자를 저장하며, 반복문 내에서 인덱스 값이나 카운터로 사용됩니다.
프로그래밍 언어별 규칙
파이썬 (Python), 루비 (Ruby)
파이썬에서는 PEP 8이라는 스타일 가이드를 따르는 것이 좋습니다. 이 가이드에 따르면, 변수 이름은 소문자로 시작하는 스네이크 케이스를 사용해야 합니다 (예: ‘variable_name’).
상수는 대문자와 언더스코어를 사용하여 이름을 지어야 합니다 (예: ‘CONSTANT_NAME’). 또한, 클래스 이름은 파스칼 케이스를 사용해야 합니다 (예: ‘ClassName’).
자바 (Java) , 자바스크립트 (JavaScript), C++
자바에서는 변수 이름에 카멜 케이스를 사용하는 것이 좋습니다 (예: ‘variableName’). 상수는 대문자와 언더스코어를 사용하여 이름을 지어야 합니다 (예: ‘CONSTANT_NAME’). 클래스 이름은 파스칼 케이스를 사용해야 합니다 (예: ‘ClassName’).

변수 명 짓기 팁
이름 길이
변수 이름은 너무 짧지도, 너무 길지도 않아야 합니다. 너무 짧은 이름은 가독성을 해칠 수 있고, 너무 긴 이름은 코드를 복잡하게 만들 수 있습니다. 일반적으로 2-3 단어 정도의 간결한 이름이 좋습니다.
숫자 사용 피하기
변수 이름에 숫자를 사용하는 것은 피해야 합니다. 예를 들어, ‘variable1’, ‘variable2’ 등과 같은 이름은 가독성을 해치고, 코드를 이해하기 어렵게 만듭니다. 대신, 의미를 명확하게 전달하는 이름을 사용하세요.
주의 사항
예약어 사용 금지
프로그래밍 언어에서는 이미 사용되고 있는 예약어를 변수 이름으로 사용할 수 없습니다. 예를 들어, ‘int’, ‘for’, ‘if’ 등은 이미 언어에서 사용되고 있는 키워드이므로, 이러한 단어를 변수 이름으로 사용하는 것은 금지되어 있습니다.
특수 문자 제한
변수 이름에는 알파벳, 숫자, 언더스코어(_)만 사용할 수 있습니다. 하이픈(-), 공백, 기타 특수 문자는 변수 이름으로 사용할 수 없습니다.