onlinetools.dev

케이스 변환기

camelCase, snake_case, kebab-case, PascalCase 등 상호 전환

로컬 실행
loading…
이 도구에 대해

식별자는 늘 여러 관례 사이를 오갑니다. API는 snake_case를 반환하고, TypeScript는 camelCase를 원하고, CSS 클래스는 kebab-case가 필요하고, 환경 변수는 CONSTANT_CASE를 요구합니다. 이 변환기는 공백, 밑줄, 하이픈, 기존 camelCase가 뒤섞인 어떤 입력이든 받아 단어로 똑똑하게 분리한 뒤, 아홉 가지 대상 스타일로 한꺼번에 다시 조합합니다.

분리기는 까다로운 경우들을 이해합니다. "getUserByID"를 get/user/by/id로 나누고(경계까지 약어를 통째로 유지), 숫자를 소속 단어의 일부로 취급하며, 각 줄을 독립적으로 처리하므로 데이터베이스 필드 한 열을 통째로 붙여넣어 한 번에 변환할 수 있습니다.

모든 스타일이 행마다 복사 버튼과 함께 동시에 표시됩니다. 먼저 모드를 고를 필요 없이, 붙여넣고 필요한 것을 집어 가면 됩니다.

자주 묻는 질문

"HTTPResponse" 같은 약어는 어떻게 처리되나요?
대문자 연속 뒤에 소문자가 오면 마지막 대문자 앞에서 분리합니다. HTTPResponse → http + response. 대부분의 스타일 가이드가 약어를 토큰화하리라 기대하는 방식과 일치하지만, 어떤 분리기도 의도를 완벽히 추측할 수는 없습니다. "IOError"가 io + error가 되는 것 같은 엣지 케이스가 있습니다.
식별자 여러 개를 한 번에 변환할 수 있나요?
네. 각 줄이 독립적으로 변환됩니다. 한 줄에 하나씩 컬럼 이름 목록을 붙여넣으면, 출력이 새 스타일로 줄 구조를 유지합니다.
여기서 Title Case와 Sentence case는 무엇이 다른가요?
Title Case는 모든 단어의 첫 글자를 대문자로 만듭니다("User Account Id"). Sentence case는 첫 단어만 대문자로 만듭니다("User account id"). 둘 다 관사와 전치사에 관한 편집 규칙은 적용하지 않습니다. 식별자에는 그런 규칙이 거의 필요 없으니까요.
왜 왕복 변환해도 원본이 항상 복원되지 않나요?
단어로 분리하는 과정에서 정보가 사라지기 때문입니다. "user_ID_2"와 "userId2"는 동일하게 토큰화됩니다. 정방향 변환은 결정적이지만, 단어 경계의 원래 표기를 역방향으로 항상 재구성할 수는 없습니다.
관련 도구