케이스 변환기

텍스트를 camelCase·snake_case 등으로 한 번에 변환

camelCase
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
PascalCase
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
snake_case
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
kebab-case
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
CONSTANT_CASE
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
Title Case
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
Sentence case
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
lower case
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.
UPPER CASE
위에 텍스트를 입력하면 모든 케이스가 즉시 표시됩니다.

케이스 변환기 소개

이 도구는 입력을 먼저 「단어」로 쪼갠 뒤 9가지 표기로 다시 조립합니다. 쪼개는 규칙은 세 가지입니다. 소문자나 숫자 다음에 대문자가 오면 자르고(fooBar → foo Bar), 대문자 여러 개 뒤에 「대문자+소문자」가 오면 그 사이를 자르며(XMLHttp → XML Http), 글자·숫자가 아닌 것(공백, _, -, . 등)은 모두 구분자로 봅니다. 결과가 이상하게 나오면 거의 항상 이 단계에서 단어가 예상과 다르게 나뉜 경우입니다.

어떤 표기가 「맞는지」는 언어와 팀 규칙이 정합니다. 같은 XML HTTP request라도 Python, Java, Go, C#의 공식 가이드가 권하는 이름이 서로 다릅니다.

언어별 공식 가이드가 권하는 표기

식별자 표기(camelCase, PascalCase)에서 이 도구는 Java 방식처럼 약어도 첫 글자만 대문자로 만듭니다. 그래서 PascalCase 결과는 XmlHttpRequest가 되고, PEP 8이나 Go 규칙을 따르는 코드라면 약어 부분을 손으로 대문자로 되돌려야 합니다. 문장 표기(Title Case, Sentence case)에서는 두 글자 이상 대문자로 된 단어(XML, JSON, MP3)를 약어로 보고 그대로 둡니다. 다만 입력 전체가 대문자(HELLO WORLD, MAX_RETRY)면 약어와 구별할 수 없어 보통 단어처럼 바꿉니다.

  • Python(PEP 8): 함수·변수는 snake_case, 클래스는 CapWords(PascalCase), 상수는 UPPER_CASE, 모듈은 짧은 소문자. 약어는 대문자를 유지하라고 해서 HTTPServerError가 HttpServerError보다 낫다고 적습니다.
  • Java(Google Java Style Guide): 약어도 한 단어로 취급해 첫 글자만 대문자. XmlHttpRequest(O) / XMLHTTPRequest(X), newCustomerId(O) / newCustomerID(X).
  • Go(Code Review Comments): 약어는 대소문자를 통일. URL 또는 url이지 Url은 안 되고, ServeHTTP, appID가 권장형입니다. 비공개 상수도 MAX_LENGTH가 아니라 maxLength입니다.
  • C#/.NET(Framework Design Guidelines): 공개 멤버는 PascalCase, 매개변수는 camelCase, 밑줄 금지. 두 글자 약어는 둘 다 대문자(IOStream), 세 글자 이상은 첫 글자만(HtmlTag). Id, Ok처럼 약어가 아닌 줄임말은 한 단어로 봅니다.
  • URL·CSS 클래스·파일 이름: kebab-case가 흔합니다. Google은 URL에서 단어를 밑줄 대신 하이픈으로 나누라고 권합니다.

쪼개기가 예상과 다른 경우

iPhone, iPad, iOS, macOS, eBay처럼 소문자로 시작해 대문자가 이어지는 널리 쓰이는 고유명사는 목록으로 알고 있어서 한 단어로 둡니다(snake_case는 iphone, camelCase는 iPhoneCase, Title Case는 iPhone Case). 목록에 없는 aValue 같은 이름은 규칙대로 a와 Value로 나뉩니다. 숫자 뒤 대문자도 경계라서 user_id2FA는 user, id2, FA로 나뉘어 camelCase가 userId2Fa가 됩니다. 반대로 숫자와 그 뒤 소문자는 붙어 있어 id2가 한 단어로 남습니다. 이런 이름은 공백을 넣어 「user id 2FA」처럼 입력하면 원하는 경계를 직접 줄 수 있습니다.

한글은 대소문자가 없어서 공백이나 기호로만 나뉩니다. 「한글 변수명」은 camelCase에서 그냥 한글변수명으로 붙습니다.

터키어 i와 독일어 ß

대소문자 변환은 언어마다 다릅니다. 터키어에는 점 있는 i/İ와 점 없는 ı/I가 따로 있어서, 터키어 규칙으로 I를 소문자로 바꾸면 ı가 됩니다. 언어 설정 없는 JavaScript 기본 toLowerCase는 İstanbul을 i 뒤에 결합용 점(U+0307)이 붙은 i̇stanbul로 바꿔, 변수명에 보이지 않는 글자가 섞입니다. 이 도구는 페이지 언어(한국어·영어·일본어·스페인어)가 터키어가 아니므로 İ를 점 없는 i로 내려 istanbul을 만듭니다. 대신 터키어 규칙(I → ı)은 적용하지 않아 DİYARBAKIR는 diyarbakir가 되고, ı를 대문자로 바꾸면 I가 됩니다. 터키어 문장을 다룬다면 결과를 확인하세요.

독일어 ß는 대문자로 바꾸면 SS 두 글자가 됩니다. STRASSE를 다시 소문자로 바꾸면 strasse가 되므로 원래 글자로 돌아오지 않습니다. 대소문자 변환이 항상 되돌릴 수 있는 변환은 아니라는 뜻입니다.

예시

약어가 든 식별자

입력
getHTTPResponseCode
결과
camel: getHttpResponseCode / snake: get_http_response_code / constant: GET_HTTP_RESPONSE_CODE

HTTP는 약어 규칙(2번)으로 한 단어가 되고, Java 스타일로 Http가 됩니다. Go 코드라면 getHTTPResponseCode를 그대로 두는 편이 규칙에 맞습니다.

Title Case와 약어

입력
naïve JSON
결과
title: Naïve JSON / pascal: NaïveJson / snake: naïve_json

Title Case는 JSON을 약어로 보고 대문자로 둡니다. PascalCase는 Java 방식대로 Json이 됩니다. ï 같은 발음 기호는 그대로 남습니다.

ß의 대문자

입력
straße größe
결과
constant: STRASSE_GRÖSSE / camel: straßeGröße

대문자 표기에서만 ß가 SS로 바뀝니다.

사용 방법

  1. 변수명이나 문장을 입력합니다.
  2. 9가지 표기가 동시에 나오면 필요한 것을 복사합니다.
  3. 약어가 들어 있다면 쓰는 언어의 규칙에 맞게 대문자를 확인합니다.

자주 묻는 질문

camelCase와 PascalCase의 차이는?

첫 단어의 첫 글자만 다릅니다. userName은 camelCase, UserName은 PascalCase입니다. 대부분의 언어에서 PascalCase는 클래스·타입 이름에 씁니다.

JSON 키는 snake_case와 camelCase 중 무엇을 써야 하나요?

JSON 규격에는 정해진 것이 없습니다. JavaScript 쪽에서 바로 쓰는 API는 camelCase, Python·Ruby 기반 API는 snake_case가 흔합니다. 한 API 안에서 섞지 않는 것이 중요합니다.

XMLHttpRequest가 왜 xmlHttpRequest가 되나요?

대문자가 이어지다가 「대문자+소문자」가 나오는 지점을 새 단어의 시작으로 보기 때문에 XML / Http / Request로 나뉩니다. 이후 camelCase 규칙에 따라 첫 단어를 모두 소문자로 만듭니다.

상수 이름은 어떤 표기인가요?

C, Java, Python, JavaScript 등에서는 CONSTANT_CASE(대문자+밑줄)가 관례입니다. Go는 예외로, 상수도 MixedCaps를 씁니다.

출처

기준일:

개인정보와 저장 방식