이 페이지의 쓰임새: 계층 사이에서 이름 옮기기
하나의 개념이 시스템 안에서는 여러 이름으로 살아갑니다. 같은 "주문 총액"이 데이터베이스 컬럼에서는 소문자와 밑줄로, API 응답의 JSON에서는 낮은 낙타 표기로, 프런트엔드 타입에서는 높은 낙타 표기로, 배포 설정에서는 대문자 상수로 쓰입니다. 이 도구는 이름 하나를 입력하면 모든 표기법을 표로 나열해, 계층마다 어떤 이름이 되는지 비교하고 필요한 것만 복사하게 해 줍니다. 여러 줄을 줄마다 따로 바꾸거나 영문 제목 규칙을 자세히 알고 싶다면 영문 대소문자·코딩 케이스 변환기를 쓰는 편이 낫습니다. 이 페이지는 입력 전체를 하나의 이름으로 취급합니다.
같은 개념, 계층별 이름 (빌드 시 계산한 표)
입력 "order total price"를 변환 함수에 넣어 얻은 결과입니다. 어느 계층에 어떤 표기를 쓰는지는 언어와 팀의 관례이므로, 아래 표는 흔한 선택을 보여 주는 예시입니다.
| 쓰이는 곳 | 표기법 | 결과 |
|---|---|---|
| DB 컬럼 / 파이썬 변수 | snake_case | order_total_price |
| JSON 키 / 자바스크립트 변수 | camelCase | orderTotalPrice |
| 클래스 · 타입 · 컴포넌트 | PascalCase | OrderTotalPrice |
| 환경 변수 · 상수 | CONSTANT_CASE | ORDER_TOTAL_PRICE |
| URL 경로 · CSS 클래스 · 파일명 | kebab-case | order-total-price |
언어·생태계별 공식 관례 요약
아래는 각 언어의 대표 스타일 가이드(예: 파이썬 PEP 8, 러스트 API 가이드라인, .NET 명명 지침, Effective Go)가 권하는 방향을 요약한 것입니다. 팀 규칙이나 린터 설정이 있으면 그쪽이 우선입니다.
| 언어 | 변수·함수 | 클래스·타입 | 상수 |
|---|---|---|---|
| JavaScript / TypeScript | camelCase | PascalCase | CONSTANT_CASE(모듈 최상위 관례) |
| Python | snake_case | CapWords(PascalCase) | CONSTANT_CASE |
| Java | camelCase | PascalCase | CONSTANT_CASE |
| Go | 비공개 camelCase, 공개 PascalCase | PascalCase(공개 시) | MixedCaps(대문자 밑줄을 권하지 않음) |
| Rust | snake_case | UpperCamelCase | SCREAMING_SNAKE_CASE |
| C# (.NET) | 메서드 PascalCase, 지역 변수 camelCase | PascalCase | PascalCase |
| SQL(관례) | snake_case 컬럼·테이블 | - | - |
| CSS / HTML 속성 | kebab-case | - | - |
계층 사이에서는 자동 변환 규칙이 따로 있는 경우가 많습니다. 예를 들어 HTML의 data-user-id 속성은 자바스크립트의dataset.userId로 접근하고, CSS 속성 background-color는 스타일 객체에서 backgroundColor가 됩니다. 직렬화 라이브러리도 대개 JSON 키 명명 규칙을 설정으로 바꿔 주므로, 필드를 일일이 변환해 코드에 박아 넣기 전에 해당 라이브러리 문서를 확인하세요.
약어와 숫자가 섞이면 어떻게 갈라지나
이 변환기는 소문자·숫자 뒤의 대문자 앞, 그리고 연속 대문자와 다음 단어의 경계에서 이름을 끊고, 글자·숫자가 아닌 문자(공백, 밑줄, 하이픈, 쉼표 등)를 모두 구분자로 버립니다. 단어 사전이 없으므로 경계 신호가 없으면 끊지 못하고, 신호가 모호하면 기대와 다르게 끊깁니다. 아래 표는 실제 함수로 계산한 결과입니다.
| 입력 | 분리된 단어 | snake_case | camelCase |
|---|---|---|---|
| parseURLFromHTMLString | parse · URL · From · HTML · String | parse_url_from_html_string | parseUrlFromHtmlString |
| iOSVersion | i · OS · Version | i_os_version | iOsVersion |
| OAuth2Token | O · Auth2 · Token | o_auth2_token | oAuth2Token |
| sha256Hash | sha256 · Hash | sha256_hash | sha256Hash |
| myAPI_v2 | my · API · v2 | my_api_v2 | myApiV2 |
iOSVersion이 i_os_version이 되고 OAuth2Token이 o_auth2_token이 되는 것은 규칙을 기계적으로 적용한 결과이며 사람이 기대하는 ios_version, oauth2_token과 다릅니다. 고유명사나 브랜드명이 들어간 이름은 변환 후 직접 고쳐야 합니다. 약어를 대문자로 유지할지(userID, HTTPServer) 일반 단어처럼 소문자화할지(userId, HttpServer)는 스타일 가이드마다 다릅니다. Go는 약어를 대문자로 유지하는 관례를 따르고, 자바 스타일 가이드(Google Java Style 등)는 약어도 하나의 단어처럼 다루도록 권합니다. 이 도구는 항상 후자처럼 약어를 일반 단어로 처리해 출력합니다. Go 코드에 쓸 이름이라면 Id를 ID로 직접 바꿔 주세요.
왕복 변환은 원본을 복원하지 못한다
단어 경계 정보만 남기고 대소문자 정보는 버리기 때문에, 한 번 변환한 이름을 반대로 되돌려도 원래 철자가 보장되지 않습니다.
| 원본 | snake_case로 | 다시 camelCase로 |
|---|---|---|
| userID | user_id | userId |
| parseURLFromHTMLString | parse_url_from_html_string | parseUrlFromHtmlString |
| customer_id | customer_id | customerId |
userID가 userId로, parseURLFromHTMLString이 parseUrlFromHtmlString으로 돌아오는 것이 그 예입니다. 그래서 한 번에 한 방향으로만 변환하고 원본은 보관하세요.
대소문자 변환 버튼의 동작 방식
- UPPERCASE · lowercase: 입력 문자열을 그대로 두고 알파벳만 바꿉니다. 공백과 줄바꿈이 보존됩니다.
- Title Case · Sentence case: 단어로 분리한 뒤 각 단어를 소문자로 만들고, Title은 단어마다, Sentence는 맨 앞 글자만 대문자로 바꿔 한 칸 공백으로 잇습니다. 따라서 쉼표 같은 문장 부호와 줄바꿈은 사라지고, "of", "and" 같은 소단어도 모두 대문자로 시작합니다. 영문 제목 표기 규칙까지 맞추려면 직접 다듬어야 합니다.
- 한글·비라틴 문자: 한글에는 대소문자가 없어 그대로 유지됩니다. 단어 구분은 공백과 기호로만 되므로
주문 total price를 camelCase로 바꾸면주문TotalPrice가 됩니다. 한글 변수명을 영문으로 옮기는 기능은 아닙니다. - 악센트가 있는 라틴 문자:
café au lait는caféAuLait처럼 문자가 보존됩니다. 식별자로 쓸 수 없는 환경이라면 악센트를 직접 제거해야 합니다.
흔한 실수와 이 도구의 한계
- 변환 결과를 곧바로 DB·API에 적용: 컬럼과 JSON 키 이름을 바꾸면 쿼리, 클라이언트, 문서까지 연쇄 수정이 필요합니다. 이름 목록을 비교하는 용도로 쓰고 실제 변경은 마이그레이션과 함께 진행하세요.
- 예약어와 충돌:
class,default,order같은 이름은 변환된 결과가 언어 예약어이거나 SQL 키워드일 수 있습니다. 변환기는 검사하지 않습니다. - 숫자로 시작하는 이름:
2fa token을 camelCase로 바꾸면2faToken이 되며, 대부분의 언어에서 식별자는 숫자로 시작할 수 없습니다. - URL에는 kebab-case: 검색엔진 안내 문서도 URL 단어 구분에 밑줄보다 하이픈을 권합니다. 한글 제목에서 주소를 만들 때는 한글 URL 슬러그 생성기가 맞습니다.
- 소스 코드 전체 리팩터링 불가: 이 도구는 텍스트만 바꿉니다. 변수 참조까지 한꺼번에 바꾸려면 편집기의 이름 바꾸기(rename symbol) 기능을 쓰세요.
변환한 뒤 이어서 할 일
바꾼 컬럼 이름 목록을 SQL IN 절이나 배열로 만들려면 줄 머리말·꼬리말 도구로 따옴표와 쉼표를 붙입니다. JSON 키를 바꾼 샘플의 구조가 맞는지 확인하려면 JSON 포맷터로 들여쓰기와 문법을 점검하고, 이름이 길어졌는지 짧아졌는지는글자수·단어수 세기로 확인할 수 있습니다.
자주 묻는 질문
이 페이지와 영문 대소문자·코딩 케이스 변환기는 무엇이 다른가요?
이 페이지는 이름 하나를 모든 표기법으로 한꺼번에 비교하는 데 초점을 둡니다. 여러 줄을 줄 단위로 변환하거나 toggle, dot.case를 쓰려면 다른 쪽 도구가 적합합니다.
한글도 변환할 수 있나요?
대소문자 구분이 없는 한글은 UPPERCASE·lowercase에 영향을 받지 않습니다. 공백이나 기호로 나뉜 한글 단어는 camelCase 등에서 이어 붙여지지만 영문으로 번역되지는 않습니다.
숫자가 포함된 텍스트는 어떻게 처리되나요?
숫자는 앞 글자에 붙은 채 한 덩어리로 유지됩니다. sha256Hash는 sha256과 Hash 두 단어로 갈라지고, 숫자 앞뒤에서 따로 끊지는 않습니다. 끊고 싶으면 입력에 공백을 넣으세요.
왜 HTMLParser가 html_parser로 바뀌나요?
연속된 대문자(HTML) 뒤에 대문자+소문자(Pa)가 오는 지점을 약어와 새 단어의 경계로 판단하기 때문입니다. 경계 신호가 없는 소문자 연속(newyork)은 나누지 못합니다.
입력한 내용이 서버로 전송되나요?
아니요. 모든 변환은 브라우저 안에서 실행됩니다.