사용 방법
- 입력 칸에 변수 이름이나 문장을 넣으면 8가지 표기 결과가 한 번에 나옵니다. 입력할 때마다 바로 다시 계산합니다.
- 엑셀 한 열이나 코드 여러 줄을 붙여 넣으면 줄마다 바꿉니다. 빈 줄은 빈 줄로 남아 순서가 어긋나지 않습니다.
- 입력이 어떤 표기인지(camelCase·snake_case 등) 자동으로 알아내 결과 위에 보여 줍니다. 줄마다 표기가 다르면 "여러 표기가 섞여 있음"으로 알려 줍니다.
- 표기를 고르고 고른 표기 복사를 누르면 여러 줄 결과를 통째로 클립보드에 담습니다.
표기 8가지는 어디에 쓰나
| 표기 | getHTTPResponse를 바꾸면 | 주로 쓰는 곳 |
|---|---|---|
| camelCase | getHttpResponse | 자바스크립트·자바·스위프트의 변수·함수 이름, JSON 키 |
| PascalCase | GetHttpResponse | 클래스·타입·리액트 컴포넌트 이름, C#의 메서드 |
| snake_case | get_http_response | 파이썬·루비의 변수·함수 이름, SQL 칼럼 이름 |
| SCREAMING_SNAKE_CASE | GET_HTTP_RESPONSE | 상수, 환경 변수(.env), 열거형 값 |
| kebab-case | get-http-response | URL 주소, CSS 클래스·속성, HTML 속성, 파일 이름 |
| Train-Case | Get-Http-Response | HTTP 헤더 이름(Content-Type), 일부 문서 제목 |
| dot.case | get.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를 씁니다. 손으로 고치면 대문자 하나를 빠뜨려 찾기 어려운 버그가 생기기 쉬우므로, 한 번에 여덟 가지를 모두 만들어 두고 필요한 것을 복사하는 편이 안전합니다.
낱말 나누기 규칙
표기 변환의 어려운 부분은 대문자·숫자·구분자 어디에서 낱말을 끊을지 정하는 것입니다. 이 도구는 아래 규칙을 따르며, 표의 결과는 실제 변환 코드로 만든 것입니다.
| 입력 | 나뉜 낱말 | 규칙 |
|---|---|---|
userName | user · Name | 소문자 뒤의 대문자에서 나눕니다. |
XMLHttpRequest | XML · Http · Request | 연속된 대문자 뒤에 대문자+소문자가 오면 그 앞에서 나눕니다. |
getHTTPResponse | get · HTTP · Response | 가운데 약어를 한 낱말로 봅니다. |
IOError | IO · Error | 두 글자 약어도 같은 규칙입니다. |
user2Name | user2 · Name | 숫자는 앞 낱말에 붙고, 숫자 뒤의 대문자에서 나눕니다. |
utf8Decode | utf8 · Decode | 약어와 숫자가 붙어 있어도 한 낱말입니다. |
v2API | v2 · API | 숫자 뒤의 약어는 따로 봅니다. |
parse_html_tag | parse · html · tag | 이미 밑줄로 나뉜 것은 그 구분자를 따릅니다. |
__dunder__ | dunder | 앞뒤 밑줄은 버립니다. |
주문 번호Code | 주문 · 번호 · Code | 한글은 내부에서 나누지 않고 띄어쓰기만 따릅니다. |
- 공백·밑줄·하이픈·점을 비롯해 글자와 숫자가 아닌 문자는 모두 경계로 보고 버립니다. 이미 나뉜 이름은 그 구분자를 그대로 따릅니다.
- 소문자 뒤의 대문자에서 나눕니다. 연속된 대문자는 한 덩어리(약어)로 보되, 뒤에 소문자로 이어지는 대문자가 있으면 그 앞에서 나눕니다.
- 숫자는 앞 낱말에 붙입니다. 숫자만으로 낱말을 만들지는 않지만, 구분자로 이미 나뉜 숫자(
user_2_name)는 낱말로 셉니다. - 한글·한자·가나처럼 대소문자가 없는 글자는 내부에서 나누지 않고 띄어쓰기만 따릅니다. 글자 체계가 바뀌는 자리(
한글Name)는 경계로 봅니다. - 앞뒤의 밑줄·하이픈·점은 버립니다.
___처럼 구분자만 있는 줄은 빈 줄이 됩니다.
여러 줄 변환 예시
| 입력 | snake_case | camelCase | kebab-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가 되는데, 이것만 보면a와 BC로 읽히므로 다시 snake_case로 바꾸면 a_bc가 됩니다. 약어의 대문자도HTTP에서 http로 낮아진 뒤에는 원래 어디가 약어였는지 알 수 없습니다. 낱말이 숫자로 끝나고 뒤에 대문자만 이어지는 이름(WZ8STH4)도 경계를 추측하지 않습니다. 중요한 이름은 바꾼 결과를 한 번 눈으로 확인하는 편이 좋습니다.
한 번에 5,000줄, 10만 자까지 변환합니다. 변환은 모두 브라우저 안에서 처리하며 입력한 글은 어디로도 보내지 않습니다.