명명 규칙이 왜 중요할까
코드에서 변수명, 함수명, 클래스명을 어떻게 쓸지는 단순한 개인 취향이 아닙니다. 통일된 명명 규칙은 코드를 읽기 쉽게 하고, 팀 협업을 원활하게 하며, 스타일을 일관되게 합니다. 언어마다 관례가 다르며, 혼동하면 전문성이 떨어져 보입니다.
일반적인 명명 규칙
카멜 케이스(camelCase)
첫 단어는 소문자, 이후 단어의 첫 글자는 대문자:
firstName
lastName
getUserInfo
isLoggedIn
용도: JavaScript/TypeScript 변수와 함수, Java 메서드와 변수, C# 메서드와 변수.
파스칼 케이스(PascalCase / UpperCamelCase)
모든 단어의 첫 글자를 대문자로:
FirstName
UserService
HomeController
용도: JavaScript/TypeScript 클래스와 인터페이스, Java 클래스, C# 클래스와 메서드, React 컴포넌트.
스네이크 케이스(snake_case)
모든 단어를 소문자로, 밑줄로 구분:
first_name
last_name
get_user_info
용도: Python 변수와 함수, Ruby 변수와 메서드, 데이터베이스 필드명, PHP 변수.
대문자 스네이크(UPPER_SNAKE_CASE / SCREAMING_SNAKE_CASE)
모두 대문자, 밑줄로 구분:
MAX_RETRY
DEFAULT_TIMEOUT
API_BASE_URL
용도: 상수, 설정 항목, 열거형 값. 거의 모든 언어에서 상수 명명에 이 규칙을 사용합니다.
케밥 케이스(kebab-case)
모두 소문자, 하이픈으로 구분:
first-name
user-profile
api-key
용도: URL 경로, HTML/CSS 클래스명, 파일명, 설정 파일 키명.
점 표기법(dot.case)
점으로 구분:
user.name
config.timeout
용도: 설정 파일 계층 키명, 네임스페이스.
언어별 관례 요약
JavaScript / TypeScript
- 변수, 함수: camelCase(getUserInfo)
- 클래스, 인터페이스, 타입: PascalCase(UserService)
- 상수: UPPER_SNAKE_CASE(MAX_RETRY)
- private 멤버: 밑줄 접두사 camelCase(_privateVar)
Python
- 변수, 함수: snake_case(get_user_info)
- 클래스: PascalCase(UserService)
- 상수: UPPER_SNAKE_CASE(MAX_RETRY)
- private 멤버: 밑줄 접두사 snake_case(_private_var)
Java
- 변수, 메서드: camelCase(getUserInfo)
- 클래스: PascalCase(UserService)
- 상수: UPPER_SNAKE_CASE(MAX_RETRY)
- 패키지명: 모두 소문자(com.example.service)
CSS / HTML
- 클래스명: kebab-case(user-profile)
- ID: kebab-case 또는 camelCase(팀 결정)
데이터베이스
- 테이블명, 필드명: snake_case(user_name)
- camelCase를 쓰는 곳도 있음, 팀 규칙에 따라
URL
- 경로: kebab-case(/user-profile/settings)
- 쿼리 매개변수: camelCase 또는 snake_case(?userId=123 또는 ?user_id=123)
변환 규칙
camelCase → snake_case
- 대문자 찾기
- 대문자 앞에 밑줄 추가
- 모두 소문자로 변환
예: getUserInfo → get_user_info
snake_case → camelCase
- 밑줄 찾기
- 밑줄 뒤의 글자를 대문자로 변환
- 밑줄 삭제
예: get_user_info → getUserInfo
PascalCase → camelCase
첫 글자를 소문자로, 나머지는 그대로.
예: UserService → userService
camelCase → PascalCase
첫 글자를 대문자로, 나머지는 그대로.
예: userService → UserService
kebab-case → camelCase
- 하이픈 찾기
- 하이픈 뒤의 글자를 대문자로 변환
- 하이픈 삭제
예: user-profile → userProfile
흔한 실수
규칙 혼용
같은 프로젝트에서 camelCase와 snake_case를 혼용하면 혼란스러워 보입니다. 하나의 규칙을 선택하고 일관되게 사용하세요.
약어 처리
약어를 모두 대문자로 할까요?
- URL 아니면 Url? userId 아니면 userID?
- 관례: 2글자 약어는 모두 대문자(ID, URL), 3글자 이상은 첫 글자만 대문자(Http, Xml)
- 팀이 통일하면 됨, 중요한 것은 프로젝트 전체의 일관성
두문자어
HTTP, XML, URL을 camelCase에서 어떻게 쓸까요?
- 권장: httpUrl, xmlParser(일반 단어로 취급)
- 일부는: HTTPUrl, XMLParser(약어 대문자 유지)
- 팀이 통일
숫자 처리
user2name 아니면 user2Name?
- camelCase: user2Name(숫자 뒤 단어 첫 글자 대문자)
- snake_case: user2_name
DocsAll로 대소문자 변환
대소문자 변환 도구 지원:
- 모두 대문자 / 모두 소문자
- 첫 글자 대문자
- 카멜 / 파스칼 / 스네이크 / 케밥 상호 변환
- 문장 첫 글자 대문자
조작:
- 텍스트 붙여넣기
- 변환 유형 선택
- 결과 복사
브라우저에서 변환, 텍스트는 업로드되지 않습니다.
요약
명명 규칙의 핵심: 변수와 함수는 카멜 또는 스네이크(언어에 따라), 클래스는 파스칼, 상수는 대문자 스네이크, URL은 케밥. 팀의 통일이 가장 중요합니다. DocsAll 대소문자 변환 도구는 브라우저에서 실행되어 데이터가 외부로 전송되지 않습니다.