프로그래밍 언어, 프레임워크, API마다 고유한 네이밍 컨벤션이 있습니다. JavaScript는 변수에 camelCase, 클래스에 PascalCase를 사용합니다. Python은 snake_case를 전반적으로 채택합니다. CSS는 kebab-case를 선호합니다. 데이터베이스 컬럼명은 snake_case가 일반적입니다. 여러 단어로 된 식별자를 손으로 일일이 변환하는 작업은 번거롭지만, 텍스트 케이스 변환 도구를 사용하면 즉시 처리됩니다.
주요 케이스 종류
camelCase
단어를 공백 없이 연결합니다. 첫 번째 단어는 소문자, 이후 단어의 첫 글자는 대문자로 시작합니다:
userLoginCount
fetchApiResponse
isAuthenticated
사용 위치: JavaScript/TypeScript 변수·함수, JSON 키, Java 메서드, Swift 프로퍼티.
PascalCase(UpperCamelCase)
camelCase와 동일하지만 첫 번째 단어도 대문자로 시작합니다:
UserLoginCount
FetchApiResponse
IsAuthenticated
사용 위치: JavaScript/TypeScript 클래스명, React 컴포넌트명, C# 타입, Python 클래스명.
snake_case
언더스코어로 단어를 구분하고 모두 소문자로 작성합니다:
user_login_count
fetch_api_response
is_authenticated
사용 위치: Python 변수·함수, Ruby, PostgreSQL 컬럼명, PHP, Rust 상수(SCREAMING 변형 포함).
SCREAMING_SNAKE_CASE
snake_case와 동일하지만 모두 대문자로 작성합니다:
USER_LOGIN_COUNT
MAX_RETRY_COUNT
API_BASE_URL
사용 위치: 대부분의 언어에서 상수(Python CONSTANTS, Java FINAL_FIELDS), 환경 변수, C/C++ 매크로.
kebab-case(dash-case)
하이픈으로 단어를 구분하고 모두 소문자로 작성합니다:
user-login-count
fetch-api-response
is-authenticated
사용 위치: CSS 클래스명·커스텀 프로퍼티, HTML 속성, URL 슬러그, npm 패키지명, CLI 플래그.
Title Case
각 단어의 첫 글자를 대문자로 시작합니다:
User Login Count
Fetch Api Response
Is Authenticated
사용 위치: 블로그 포스트 제목, 페이지 헤딩, 버튼 레이블, 메뉴 항목.
UPPER CASE / lower case
단순 대문자·소문자 변환. 데이터베이스 키, enum 값, 표시 포매팅에 유용합니다.
언어별 네이밍 컨벤션
| 언어 | 변수 | 함수 | 클래스 | 상수 | CSS |
|---|---|---|---|---|---|
| JavaScript | camelCase | camelCase | PascalCase | SCREAMING | kebab-case |
| TypeScript | camelCase | camelCase | PascalCase | SCREAMING | kebab-case |
| Python | snake_case | snake_case | PascalCase | SCREAMING | — |
| Go | camelCase | camelCase | PascalCase | — | — |
| Rust | snake_case | snake_case | PascalCase | SCREAMING | — |
| Java | camelCase | camelCase | PascalCase | SCREAMING | — |
| C# | camelCase | PascalCase | PascalCase | PascalCase | — |
| Ruby | snake_case | snake_case | PascalCase | SCREAMING | — |
| PHP | camelCase | camelCase | PascalCase | SCREAMING | — |
| SQL | snake_case | — | — | UPPER | — |
실무 활용 사례
API → 코드 매핑
REST API는 camelCase JSON 키를 사용하는 경우가 많지만, Python 클라이언트는 snake_case 변수를 기대합니다. 데이터 모델이나 매퍼를 작성할 때:
API 입력:
{ "userId": 42, "firstName": "Alice", "createdAt": "2026-01-01" }
Python 모델 필드(snake_case):
user_id: int
first_name: str
created_at: datetime
userId, firstName, createdAt을 변환 도구에 붙여넣으면 user_id, first_name, created_at을 한 번에 얻을 수 있습니다.
데이터베이스 컬럼 → 코드 변수
PostgreSQL은 snake_case 컬럼명을 사용합니다. 컬럼명 목록을 TypeScript 인터페이스용 camelCase로, 또는 Python 모델용 snake_case로 하나씩 입력하지 않고 변환할 수 있습니다.
코드베이스 전체에서 변수명 변경
리팩토링 시 여러 단어로 된 식별자를 변경해야 할 때, 기존 이름을 목표 케이스로 변환한 다음 에디터의 찾기·바꾸기를 사용합니다.
URL 슬러그 생성
“My Favorite Developer Tools” 같은 페이지 제목을 URL 슬러그용 my-favorite-developer-tools(kebab-case)로 변환합니다.
CSS 커스텀 프로퍼티명
/* 변환 전: userPrimaryColor (JS에서 camelCase) */
/* 변환 후: --user-primary-color (CSS용 kebab-case) */
변환 도구의 작동 원리
변환 도구는 입력 텍스트를 단어 경계로 분리합니다. 공백, 언더스코어, 하이픈, 그리고 camelCase 경계(소문자 뒤에 오는 대문자)도 인식합니다. 혼합 입력도 처리됩니다:
myVariableName→ 대소문자 전환으로 단어 경계 감지my_variable_name→ 언더스코어로 분리my-variable-name→ 하이픈으로 분리MY VARIABLE NAME→ 공백으로 분리
어떤 형식으로 붙여넣어도 모든 케이스의 출력 결과를 동시에 얻을 수 있습니다.
주의해야 할 엣지 케이스
약어: userId(ID를 접미사로 처리) vs userID(약어 보존) 중 어느 쪽을 쓸지 팀에서 통일하세요. 변환 도구는 기본적으로 userId를 출력합니다.
숫자: item3d·item3D·item_3d? 컨벤션은 다양합니다. 변환 도구는 숫자를 단어의 연속으로 처리합니다.
앞뒤 구분자: _private(Python의 프라이빗 속성 컨벤션)에서 앞의 언더스코어를 제거하는 도구도 있습니다. 사용하는 도구의 동작을 파악해두세요.
변수명을 손으로 다시 입력하는 것을 멈추세요. 텍스트 케이스 변환 도구 사용해보기 →