케이스 변환기
텍스트를 UPPERCASE, lowercase, 타이틀 케이스, camelCase, snake_case 등으로 변환
입력
출력
텍스트 케이스 변환이란?
텍스트 케이스 변환은 문자열의 대소문자 또는 단어 구분 방식을 변경하는 작업입니다. 케이스 변환기는 "hello world"와 같은 입력을 UPPERCASE, lowercase, 타이틀 케이스, camelCase, snake_case, kebab-case 등의 형식으로 변환합니다. 단순한 ASCII 텍스트는 변환이 간단하지만 약어("XMLParser"), 로케일 규칙(터키어 점 있는 I), 혼합 문자 문자열에서는 예외 상황이 발생할 수 있습니다.
프로그래밍 언어, 파일 시스템, 스타일 가이드는 각자의 명명 규칙을 따릅니다. JavaScript 변수는 일반적으로 camelCase를 사용합니다. Python 함수와 변수는 PEP 8에 따라 snake_case를 따릅니다. CSS 클래스명은 kebab-case를 사용합니다. 데이터베이스 컬럼은 팀마다 다르지만 PostgreSQL과 MySQL에서는 snake_case가 지배적입니다. 이러한 규칙 간에 수동으로 변환하는 것은 느리고 오류가 발생하기 쉬우며, 특히 수십 개의 파일에서 이름을 바꿀 때는 더욱 그렇습니다.
케이스 규칙은 코드 외부에서도 중요합니다. 타이틀 케이스는 시카고 매뉴얼 오브 스타일 및 APA와 같은 스타일 가이드에서 정의한 규칙을 따르며, 관사와 짧은 전치사는 문장 첫 단어가 아닌 한 소문자로 유지됩니다. 문장 케이스는 첫 번째 단어와 고유명사만 대문자로 표기합니다. 미국 영어 출판물은 헤드라인에 타이틀 케이스를 기본으로 사용하고, 유럽과 기술 문서 대부분은 문장 케이스를 사용합니다.
이 케이스 변환기를 사용해야 하는 이유
텍스트를 붙여넣고 9가지 케이스 형식으로 즉시 변환합니다. VS Code 확장 설치나 일회용 스크립트 작성이 필요 없습니다.
케이스 변환기 활용 사례
케이스 규칙 참고
각 명명 규칙은 대소문자 표기와 단어 구분에 대한 고유한 규칙을 가지고 있습니다. 아래 표는 이 도구가 지원하는 9가지 형식을 "the quick brown fox" 입력 예시와 함께 보여줍니다.
| 케이스 | 규칙 | 예시 |
|---|---|---|
| UPPERCASE | Every letter capitalized | THE QUICK BROWN FOX |
| lowercase | Every letter lowercased | the quick brown fox |
| Title Case | First letter of each word capitalized | The Quick Brown Fox |
| Sentence case | First letter of each sentence capitalized | The quick brown fox |
| camelCase | No separators, first word lowercase | theQuickBrownFox |
| PascalCase | No separators, every word capitalized | TheQuickBrownFox |
| snake_case | Words joined by underscores, all lowercase | the_quick_brown_fox |
| kebab-case | Words joined by hyphens, all lowercase | the-quick-brown-fox |
| CONSTANT_CASE | Words joined by underscores, all uppercase | THE_QUICK_BROWN_FOX |
camelCase vs snake_case vs kebab-case
이 세 가지 규칙은 소프트웨어 개발에서 지배적이지만, 각각 다른 생태계에 속합니다. 잘못된 규칙을 선택하면 린터가 오류를 발생시키고, API 계약을 위반하거나, 일관성 없는 코드베이스가 됩니다.
코드 예시
프로그래밍 방식으로 케이스 규칙 간에 변환하는 방법입니다. 각 예시는 camelCase에서 snake_case로, snake_case에서 camelCase로, 그리고 기본적인 대소문자 및 타이틀 케이스 변환을 다룹니다.
// camelCase → snake_case
function toSnakeCase(str) {
return str
.replace(/([a-z])([A-Z])/g, '$1_$2')
.replace(/[\s-]+/g, '_')
.toLowerCase()
}
toSnakeCase('myVariableName') // → "my_variable_name"
toSnakeCase('kebab-case-str') // → "kebab_case_str"
// snake_case → camelCase
function toCamelCase(str) {
return str
.toLowerCase()
.replace(/[_-](\w)/g, (_, c) => c.toUpperCase())
}
toCamelCase('my_variable_name') // → "myVariableName"
// Title Case
function toTitleCase(str) {
return str.replace(/\w\S*/g, w =>
w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
)
}
toTitleCase('the quick brown fox') // → "The Quick Brown Fox"import re
text = "the quick brown fox"
# UPPERCASE / lowercase
text.upper() # → "THE QUICK BROWN FOX"
text.lower() # → "the quick brown fox"
# Title Case
text.title() # → "The Quick Brown Fox"
# camelCase
def to_camel(s):
words = re.split(r'[\s_-]+', s)
return words[0].lower() + ''.join(w.capitalize() for w in words[1:])
to_camel("my_variable_name") # → "myVariableName"
# snake_case from camelCase
def to_snake(s):
return re.sub(r'([a-z])([A-Z])', r'\1_\2', s).lower()
to_snake("myVariableName") # → "my_variable_name"
# kebab-case
def to_kebab(s):
return re.sub(r'([a-z])([A-Z])', r'\1-\2', s).replace('_', '-').lower()
to_kebab("myVariableName") # → "my-variable-name"package main
import (
"fmt"
"regexp"
"strings"
)
// camelCase → snake_case
func toSnake(s string) string {
re := regexp.MustCompile("([a-z])([A-Z])")
snake := re.ReplaceAllString(s, "${1}_${2}")
return strings.ToLower(snake)
}
// snake_case → camelCase
func toCamel(s string) string {
parts := strings.Split(strings.ToLower(s), "_")
for i := 1; i < len(parts); i++ {
parts[i] = strings.Title(parts[i])
}
return strings.Join(parts, "")
}
func main() {
fmt.Println(toSnake("myVariableName")) // → my_variable_name
fmt.Println(toCamel("my_variable_name")) // → myVariableName
fmt.Println(strings.ToUpper("hello")) // → HELLO
fmt.Println(strings.ToUpper("hello world")) // → HELLO WORLD
}# UPPERCASE echo "hello world" | tr '[:lower:]' '[:upper:]' # → HELLO WORLD # lowercase echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]' # → hello world # camelCase → snake_case (using sed) echo "myVariableName" | sed 's/\([a-z]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]' # → my_variable_name # snake_case → kebab-case echo "my_variable_name" | tr '_' '-' # → my-variable-name