변수 및 함수 이름 짓기: 명명 규칙과 실천 방법

변수 및 함수 이름 짓기: 어려움과 개선 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • 소프트웨어 개발자
  • 중급 이상의 코드 리뷰/리팩토링 경험자
  • 팀 협업 및 코드 가독성에 관심 있는 개발자

핵심 요약

  • 변수는 데이터(명사)로, 함수는 행동(동사)으로 명명해야 한다 (예: userAge vs calculateTotalPrice)
  • 불필요한 단축어(x, temp)와 의미 없는 플레이스홀더(foo)는 피해야 한다
  • 불리언 변수는 긍정적 표현(isEnabled vs isNotVisible)으로 명명해야 한다
  • 일관된 케이스 스타일(camelCase, snake_case)을 유지해야 한다

섹션별 세부 요약

1. 왜 이름 짓기가 어려운가?

  • IDE 자동완성에 의존하면 코드 가독성이 떨어진다
  • 명확한 이름을 짓기 위해 코드의 의도와 미래 사용자에 대한 공감이 필요하다
  • count vs num과 같은 단축어는 의미를 흐리고 유지보수를 어렵게 만든다

2. 변수 명명 원칙

  • 변수는 데이터를 저장하므로 명사 또는 명사구로 명명 (userEmail vs emailAddressOfUser)
  • 불필요한 동사(countItems 대신 itemCount) 사용은 피해야 한다
  • 예시: const userAge = 42const x = 42보다 의미가 명확하다

3. 함수 명명 원칙

  • 함수는 행동을 수행하므로 동사 또는 동사구로 명명 (calculateTotalPrice vs process)
  • 명확한 목적을 전달하는 이름이 필요 (예: updateUserProfile 대신 userProfile)
  • 명령문처럼 읽히는 것이 중요 (예: handleUserLoginhandle()보다 명확하다)

4. 불리언 변수 명명

  • 불리언은 긍정적 표현(isEnabled, hasAccess)으로 명명
  • 부정 표현(isNotVisible)은 혼란을 유발하므로 피해야 한다
  • 예시: const isVisible = falseconst isNotVisible = true보다 직관적이다

5. 일관성과 스타일

  • 일관된 케이스 스타일 사용:
  • camelCase (JavaScript, Java)
  • snake_case (Python, Ruby)
  • PascalCase (C# 클래스명)
  • 프로젝트 전체에서 하나의 스타일만 사용 (totalPrice vs total_price 혼용은 금지)

결론

  • 코드의 의도를 명확히 전달하는 이름을 선택하고, 일관된 스타일을 적용해야 한다
  • const user = 5 대신 const numUsers = 5처럼 의미 있는 이름을 사용하라
  • 명확성과 가독성을 위해 단축어보다 긴 이름이 더 유리 (예: orderTimestamp vs ts)
  • 팀 내 협의 후 하나의 명명 규칙을 정하고, 자동화 도구로 일관성 유지해야 한다