문자열 표기 변환기 (카멜·스네이크·케밥)

변수 이름을 카멜·파스칼·스네이크·케밥·상수 표기로 바꾸고 여러 줄을 한 번에 변환합니다.

알아낸 입력 표기여러 표기가 섞여 있음
줄 · 낱말3줄 · 낱말 9개
표기결과
camelCase
xmlHttpRequest
userFirstName
getUserProfile
PascalCase
XmlHttpRequest
UserFirstName
GetUserProfile
snake_case
xml_http_request
user_first_name
get_user_profile
SCREAMING_SNAKE_CASE
XML_HTTP_REQUEST
USER_FIRST_NAME
GET_USER_PROFILE
kebab-case
xml-http-request
user-first-name
get-user-profile
Train-Case
Xml-Http-Request
User-First-Name
Get-User-Profile
dot.case
xml.http.request
user.first.name
get.user.profile
띄어쓴 문장
Xml http request
User first name
Get user profile

첫 줄의 낱말 나누기: XML · Http · Request

사용 방법

  1. 입력 칸에 변수 이름이나 문장을 넣으면 8가지 표기 결과가 한 번에 나옵니다. 입력할 때마다 바로 다시 계산합니다.
  2. 엑셀 한 열이나 코드 여러 줄을 붙여 넣으면 줄마다 바꿉니다. 빈 줄은 빈 줄로 남아 순서가 어긋나지 않습니다.
  3. 입력이 어떤 표기인지(camelCase·snake_case 등) 자동으로 알아내 결과 위에 보여 줍니다. 줄마다 표기가 다르면 "여러 표기가 섞여 있음"으로 알려 줍니다.
  4. 표기를 고르고 고른 표기 복사를 누르면 여러 줄 결과를 통째로 클립보드에 담습니다.

표기 8가지는 어디에 쓰나

표기getHTTPResponse를 바꾸면주로 쓰는 곳
camelCasegetHttpResponse자바스크립트·자바·스위프트의 변수·함수 이름, JSON 키
PascalCaseGetHttpResponse클래스·타입·리액트 컴포넌트 이름, C#의 메서드
snake_caseget_http_response파이썬·루비의 변수·함수 이름, SQL 칼럼 이름
SCREAMING_SNAKE_CASEGET_HTTP_RESPONSE상수, 환경 변수(.env), 열거형 값
kebab-caseget-http-responseURL 주소, CSS 클래스·속성, HTML 속성, 파일 이름
Train-CaseGet-Http-ResponseHTTP 헤더 이름(Content-Type), 일부 문서 제목
dot.caseget.http.response설정 파일 키(application.properties), 이벤트 이름, 패키지 경로
띄어쓴 문장Get http response화면에 보여 줄 이름표, 버튼·제목 문구

같은 이름을 언어마다 다르게 쓰기 때문에 표기 변환이 필요합니다. 예를 들어 서버가 JSON을 user_first_name으로 보내면 자바스크립트 쪽에서는 userFirstName으로 받아 쓰고, 그 값을 CSS 클래스로 쓸 때는 user-first-name, 환경 변수로 쓸 때는 USER_FIRST_NAME이 됩니다. HTTP 헤더 이름은 Content-Type처럼 낱말마다 첫 글자를 대문자로 쓰는 Train-Case를, 스프링 설정 파일은 spring.datasource.url처럼 점으로 잇는 dot.case를 씁니다. 손으로 고치면 대문자 하나를 빠뜨려 찾기 어려운 버그가 생기기 쉬우므로, 한 번에 여덟 가지를 모두 만들어 두고 필요한 것을 복사하는 편이 안전합니다.

낱말 나누기 규칙

표기 변환의 어려운 부분은 대문자·숫자·구분자 어디에서 낱말을 끊을지 정하는 것입니다. 이 도구는 아래 규칙을 따르며, 표의 결과는 실제 변환 코드로 만든 것입니다.

입력나뉜 낱말규칙
userNameuser · Name소문자 뒤의 대문자에서 나눕니다.
XMLHttpRequestXML · Http · Request연속된 대문자 뒤에 대문자+소문자가 오면 그 앞에서 나눕니다.
getHTTPResponseget · HTTP · Response가운데 약어를 한 낱말로 봅니다.
IOErrorIO · Error두 글자 약어도 같은 규칙입니다.
user2Nameuser2 · Name숫자는 앞 낱말에 붙고, 숫자 뒤의 대문자에서 나눕니다.
utf8Decodeutf8 · Decode약어와 숫자가 붙어 있어도 한 낱말입니다.
v2APIv2 · API숫자 뒤의 약어는 따로 봅니다.
parse_html_tagparse · html · tag이미 밑줄로 나뉜 것은 그 구분자를 따릅니다.
__dunder__dunder앞뒤 밑줄은 버립니다.
주문 번호Code주문 · 번호 · Code한글은 내부에서 나누지 않고 띄어쓰기만 따릅니다.

여러 줄 변환 예시

입력snake_casecamelCasekebab-case
XMLHttpRequest
user_first_name
get-user-profile
xml_http_request
user_first_name
get_user_profile
xmlHttpRequest
userFirstName
getUserProfile
xml-http-request
user-first-name
get-user-profile

세 줄의 표기가 각각 PascalCase·snake_case·kebab-case로 달라도 결과는 한 가지 표기로 통일됩니다. 위 입력을 넣으면 화면에는 "여러 표기가 섞여 있음"으로 표시됩니다.

되돌릴 수 없는 경우

표기를 바꾸면 정보가 조금 사라질 수 있습니다. a_b_c를 camelCase로 바꾸면 aBC가 되는데, 이것만 보면aBC로 읽히므로 다시 snake_case로 바꾸면 a_bc가 됩니다. 약어의 대문자도HTTP에서 http로 낮아진 뒤에는 원래 어디가 약어였는지 알 수 없습니다. 낱말이 숫자로 끝나고 뒤에 대문자만 이어지는 이름(WZ8STH4)도 경계를 추측하지 않습니다. 중요한 이름은 바꾼 결과를 한 번 눈으로 확인하는 편이 좋습니다.

한 번에 5,000줄, 10만 자까지 변환합니다. 변환은 모두 브라우저 안에서 처리하며 입력한 글은 어디로도 보내지 않습니다.

자주 묻는 질문

XMLHttpRequest처럼 대문자가 이어지는 이름은 어디서 나뉘나요?

연속된 대문자 뒤에 "대문자+소문자"가 오면 그 대문자 앞에서 나눕니다. XMLHttpRequest는 XML · Http · Request가 되어 xml_http_request로, getHTTPResponse는 get · HTTP · Response가 되어 get_http_response로 바뀝니다. IOError·APIKey처럼 짧은 약어도 같은 규칙으로 IO · Error, API · Key가 됩니다.

이름에 숫자가 들어 있으면 낱말 경계를 어떻게 잡나요?

숫자는 앞 낱말에 붙입니다. 그리고 숫자 뒤에 대문자가 오면, 숫자 앞이 소문자였거나 그 대문자 뒤에 소문자가 이어질 때만 나눕니다. user2Name은 user2 · Name, utf8Decode는 utf8 · Decode, v2API는 v2 · API가 됩니다. 다만 WZ8STH4처럼 대문자와 숫자만 이어지는 이름은 경계를 알 수 없어 한 낱말로 둡니다.

_private나 __dunder__처럼 앞뒤에 밑줄이 붙은 이름은 밑줄이 남나요?

앞뒤 밑줄은 버리고 가운데 낱말만 바꿉니다. _private는 private, __dunder__는 dunder가 기준이 됩니다. 목표 표기마다 구분자가 달라 밑줄을 그대로 옮기면 kebab-case에서 -private처럼 뜻이 달라지기 때문입니다. 파이썬 비공개 속성처럼 밑줄이 필요하면 결과를 복사한 뒤 앞에 붙여 쓰세요.

한글이나 이모지가 섞인 줄도 변환할 수 있나요?

한글은 낱말로 쪼개지 않고 띄어쓰기와 구분자만 따릅니다. "주문 상태 code"는 주문 · 상태 · code로 나뉘어 주문_상태_code가 되고, 한글에는 대소문자가 없으므로 모양이 그대로 남습니다. 이모지나 괄호처럼 이름에 쓸 수 없는 문자는 경계로 보고 결과에서 빼며, 오류 없이 나머지 글자만 변환합니다.

바꾼 결과를 원래 표기로 되돌릴 수 있나요?

대부분은 되돌아갑니다. snake_case를 camelCase로 바꾼 뒤 다시 snake_case로 바꾸면 처음 글자로 돌아오는지 무작위 입력으로 검사합니다. 단 한 글자 낱말이 이어지거나(a_b_c는 aBC가 되어 a_bc로 돌아옵니다) 약어의 대문자(HTTP는 http이 됩니다)는 정보가 사라져 완전히 복원되지 않습니다.

이 도구가 도움이 되었다면 공유해 주세요

계산 결과가 이상한가요? 알려 주세요.

계산 결과는 참고용이며 법적 효력이 없습니다.

다른 도구