변수 및 함수 이름 짓기: 어려움과 개선 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 소프트웨어 개발자
- 중급 이상의 코드 리뷰/리팩토링 경험자
- 팀 협업 및 코드 가독성에 관심 있는 개발자
핵심 요약
- 변수는 데이터(명사)로, 함수는 행동(동사)으로 명명해야 한다 (예:
userAge
vscalculateTotalPrice
) - 불필요한 단축어(
x
,temp
)와 의미 없는 플레이스홀더(foo
)는 피해야 한다 - 불리언 변수는 긍정적 표현(
isEnabled
vsisNotVisible
)으로 명명해야 한다 - 일관된 케이스 스타일(
camelCase
,snake_case
)을 유지해야 한다
섹션별 세부 요약
1. 왜 이름 짓기가 어려운가?
- IDE 자동완성에 의존하면 코드 가독성이 떨어진다
- 명확한 이름을 짓기 위해 코드의 의도와 미래 사용자에 대한 공감이 필요하다
count
vsnum
과 같은 단축어는 의미를 흐리고 유지보수를 어렵게 만든다
2. 변수 명명 원칙
- 변수는 데이터를 저장하므로 명사 또는 명사구로 명명 (
userEmail
vsemailAddressOfUser
) - 불필요한 동사(
countItems
대신itemCount
) 사용은 피해야 한다 - 예시:
const userAge = 42
은const x = 42
보다 의미가 명확하다
3. 함수 명명 원칙
- 함수는 행동을 수행하므로 동사 또는 동사구로 명명 (
calculateTotalPrice
vsprocess
) - 명확한 목적을 전달하는 이름이 필요 (예:
updateUserProfile
대신userProfile
) - 명령문처럼 읽히는 것이 중요 (예:
handleUserLogin
은handle()
보다 명확하다)
4. 불리언 변수 명명
- 불리언은 긍정적 표현(
isEnabled
,hasAccess
)으로 명명 - 부정 표현(
isNotVisible
)은 혼란을 유발하므로 피해야 한다 - 예시:
const isVisible = false
는const isNotVisible = true
보다 직관적이다
5. 일관성과 스타일
- 일관된 케이스 스타일 사용:
camelCase
(JavaScript, Java)snake_case
(Python, Ruby)PascalCase
(C# 클래스명)- 프로젝트 전체에서 하나의 스타일만 사용 (
totalPrice
vstotal_price
혼용은 금지)
결론
- 코드의 의도를 명확히 전달하는 이름을 선택하고, 일관된 스타일을 적용해야 한다
const user = 5
대신const numUsers = 5
처럼 의미 있는 이름을 사용하라- 명확성과 가독성을 위해 단축어보다 긴 이름이 더 유리 (예:
orderTimestamp
vsts
) - 팀 내 협의 후 하나의 명명 규칙을 정하고, 자동화 도구로 일관성 유지해야 한다