대소문자·케이스 변환기는 입력한 텍스트를 대문자·소문자·camelCase·snake_case·kebab-case·Title Case 등 원하는 표기 규칙으로 즉시 바꿔 주는 도구입니다. 변수명·함수명·파일명·URL 슬러그·데이터 컬럼명처럼 특정 케이스 규칙을 지켜야 하는 작업에서, 손으로 하나하나 고칠 필요 없이 붙여넣기 한 번으로 여러 형식을 동시에 얻을 수 있습니다.
프로그래밍에서 이름을 어떻게 표기하느냐(네이밍 컨벤션)는 단순한 취향이 아니라 언어·프레임워크·팀의 규약입니다. 예를 들어 JavaScript는 변수와 함수에 camelCase, 클래스에 PascalCase를 쓰고, Python은 변수·함수에 snake_case를 씁니다. 규약과 다른 표기를 섞어 쓰면 코드 리뷰에서 지적받거나 린터(linter) 경고가 뜨고, 협업 시 가독성이 떨어집니다. 이 변환기는 그런 형식 맞추기를 자동화합니다.
아래에서는 이 도구가 지원하는 변환 종류, 대표적인 케이스 표기법의 정확한 정의와 예시, 프로그래밍 언어별 관례, 그리고 실무에서 자주 겪는 함정과 질문을 정리했습니다. 변환 결과는 각 항목 옆의 '복사' 버튼으로 바로 클립보드에 담을 수 있습니다.
사용 방법
- 상단 입력창에 변환할 텍스트나 이름을 붙여넣습니다. 여러 단어(예: "user profile image")나 이미 특정 케이스로 된 문자열(예: "userProfileImage") 모두 인식합니다.
- 입력하는 즉시 UPPER 대문자, lower 소문자, camelCase, snake_case, kebab-case, Title Case, 공백/줄바꿈 정리 결과가 목록으로 함께 표시됩니다.
- 원하는 형식 오른쪽의 '복사' 버튼을 누르면 해당 결과만 클립보드에 복사됩니다. 체크 표시(✓)가 잠깐 뜨면 복사가 된 것입니다.
- 여러 이름을 한 번에 바꾸려면 한 줄에 하나씩 넣기보다, 각 이름을 개별로 넣어 변환하는 것이 정확합니다. 케이스 변환은 단어 경계를 기준으로 동작하기 때문입니다.
이 도구가 지원하는 변환
입력 텍스트를 대문자·소문자·기호 문자(_ 나 -)로 나뉜 단어 경계를 기준으로 분석해, 아래 일곱 가지 형식으로 동시에 변환합니다. camelCase처럼 이미 붙어 있는 문자열도 대문자 위치를 단어 경계로 인식해 다시 나눕니다.
| 변환 | 설명 | 결과 예시 |
|---|---|---|
| UPPER 대문자 | 모든 글자를 대문자로 | USER PROFILE IMAGE |
| lower 소문자 | 모든 글자를 소문자로 | user profile image |
| camelCase | 첫 단어만 소문자, 이후 단어 첫 글자 대문자, 공백 제거 | userProfileImage |
| snake_case | 모두 소문자, 단어를 밑줄(_)로 연결 | user_profile_image |
| kebab-case | 모두 소문자, 단어를 하이픈(-)으로 연결 | user-profile-image |
| Title Case | 각 단어 첫 글자만 대문자 | User Profile Image |
| 공백/줄바꿈 정리 | 연속 공백을 하나로, 3줄 이상 빈 줄을 2줄로 정리 | 정돈된 텍스트 |
PascalCase·CONSTANT_CASE가 필요하면
이 도구는 Title Case(각 단어 첫 글자 대문자)와 UPPER(전부 대문자)를 제공합니다. 클래스명에 쓰는 PascalCase(UserProfileImage)는 camelCase 결과의 첫 글자만 대문자로 바꾸면 되고, 상수에 쓰는 CONSTANT_CASE(USER_PROFILE_IMAGE)는 snake_case 결과를 UPPER로 다시 변환하면 얻을 수 있습니다.
케이스 표기법 정의와 예시
케이스(case) 표기법은 여러 단어로 된 이름을 공백 없이 하나로 이어 쓸 때, 단어 구분을 대소문자나 기호로 표현하는 규칙입니다. 같은 뜻의 이름 "user name"이 규칙에 따라 어떻게 달라지는지 아래 표로 비교했습니다.
| 표기법 | 구분 방식 | 예시 | 주로 쓰는 곳 |
|---|---|---|---|
| camelCase | 둘째 단어부터 첫 글자 대문자 | userName | JS 변수·함수, Java 메서드 |
| PascalCase (UpperCamelCase) | 모든 단어 첫 글자 대문자 | UserName | 클래스·타입·컴포넌트명 |
| snake_case | 소문자 + 밑줄(_) | user_name | Python·Ruby 변수, DB 컬럼 |
| kebab-case | 소문자 + 하이픈(-) | user-name | URL 슬러그, CSS 클래스, 파일명 |
| CONSTANT_CASE (SCREAMING_SNAKE) | 대문자 + 밑줄(_) | USER_NAME | 상수, 환경변수 |
| Title Case | 각 단어 첫 글자 대문자 + 공백 | User Name | 제목, 라벨, 문서 헤딩 |
헷갈리기 쉬운 구분
camelCase와 PascalCase는 첫 글자만 다릅니다(userName vs UserName). snake_case와 kebab-case는 연결 기호만 다릅니다(user_name vs user-name). URL과 CSS에서는 밑줄보다 하이픈(kebab-case)이 표준으로 권장됩니다.
프로그래밍 언어별 네이밍 관례
케이스 규칙은 언어와 대상(변수·함수·클래스·상수)에 따라 관례가 정해져 있습니다. 아래는 널리 통용되는 스타일 가이드 기준의 대표 관례입니다. 실제 프로젝트에서는 팀의 린터 설정이 최종 기준이 됩니다.
| 언어 | 변수·함수 | 클래스·타입 | 상수 |
|---|---|---|---|
| JavaScript / TypeScript | camelCase | PascalCase | CONSTANT_CASE |
| Python | snake_case | PascalCase | CONSTANT_CASE |
| Java | camelCase | PascalCase | CONSTANT_CASE |
| Go | camelCase (비공개) / PascalCase (공개) | PascalCase | PascalCase / CONSTANT_CASE |
| Ruby | snake_case | PascalCase | CONSTANT_CASE |
| Rust | snake_case | PascalCase | CONSTANT_CASE |
| CSS / HTML | kebab-case (클래스·속성) | - | - |
| SQL(관례) | snake_case (컬럼·테이블) | - | - |
Go의 대소문자는 문법입니다
Go에서는 이름의 첫 글자가 대문자면 패키지 외부로 공개(export), 소문자면 비공개입니다. 즉 PascalCase냐 camelCase냐가 단순 스타일이 아니라 접근 제어를 결정하는 문법 규칙이므로 특히 주의해야 합니다.
실무에서 자주 쓰는 상황
케이스 변환이 특히 자주 필요한 대표적인 작업들입니다.
- API 연동: 서버가 snake_case(user_name)로 내려주는 JSON을 프론트엔드 camelCase(userName)로 맞출 때.
- DB 스키마 설계: 컬럼명을 snake_case로 통일하거나, 반대로 코드용 이름으로 바꿀 때.
- URL 슬러그 만들기: 글 제목 "제품 상세 페이지" 같은 라벨을 kebab-case(product-detail-page)로 변환해 주소에 쓸 때.
- 환경변수·상수 정의: 설정 키를 CONSTANT_CASE(MAX_RETRY_COUNT)로 통일할 때.
- 디자인·문서 작업: 버튼 라벨이나 제목을 Title Case로 일관되게 정리할 때.
- 리팩터링: 코드 스타일 가이드가 바뀌어 기존 이름들의 케이스를 일괄 변경해야 할 때.
자주 묻는 질문
- camelCase와 PascalCase는 뭐가 다른가요?
- 둘 다 단어를 붙여 쓰고 각 단어 첫 글자를 대문자로 구분하지만, 맨 앞 글자가 다릅니다. camelCase는 첫 글자가 소문자(userName), PascalCase는 첫 글자도 대문자(UserName)입니다. 보통 변수·함수에는 camelCase, 클래스·타입·컴포넌트에는 PascalCase를 씁니다.
- snake_case와 kebab-case 중 언제 무엇을 쓰나요?
- 연결 기호만 다릅니다. snake_case는 밑줄(user_name)로, kebab-case는 하이픈(user-name)으로 단어를 잇습니다. Python 변수나 DB 컬럼처럼 코드 식별자에는 snake_case를, URL 슬러그·CSS 클래스·파일명처럼 웹 주소나 마크업에는 kebab-case를 씁니다. 밑줄은 URL에서 밑줄 표시와 겹쳐 보이지 않는 문제가 있어 웹에서는 하이픈이 권장됩니다.
- 이미 camelCase로 된 문자열도 변환되나요?
- 네. 이 도구는 소문자 뒤에 오는 대문자를 단어 경계로 인식합니다. 예를 들어 "userProfileImage"를 넣으면 user / profile / image로 나눠 snake_case(user_profile_image)나 kebab-case(user-profile-image) 등으로 다시 변환합니다.
- CONSTANT_CASE(대문자 스네이크)는 어떻게 만드나요?
- 먼저 snake_case로 변환해 단어를 밑줄로 이은 뒤(user_name), 그 결과를 다시 UPPER 대문자로 변환하면 됩니다(USER_NAME). 상수나 환경변수 이름을 만들 때 이 순서를 쓰면 편리합니다.
- 한글이나 숫자가 섞여 있어도 되나요?
- 한글은 대소문자 개념이 없어 그대로 유지되고, 숫자는 단어의 일부로 취급됩니다. 다만 케이스 변환은 영문 식별자를 만들 목적으로 설계되었으므로, 한글 제목을 URL 슬러그로 바꾸려면 먼저 로마자로 옮긴 뒤 kebab-case로 변환하는 것이 좋습니다.
- 변환 결과를 한 번에 여러 개 복사할 수 있나요?
- 각 형식마다 별도의 '복사' 버튼이 있어 원하는 결과만 골라 클립보드에 담습니다. 여러 형식이 필요하면 버튼을 각각 눌러 순서대로 복사하면 됩니다.