단어 경계를 어떻게 찾는가
입력을 먼저 단어 단위로 쪼갠 뒤 원하는 방식으로 다시 붙입니다. 공백, 하이픈, 밑줄, 점 같은 구분자와 함께 getUserID처럼 소문자 뒤에 대문자가 오는 지점도 경계로 봅니다. 연속 대문자 뒤에 소문자가 오면(HTMLParser → HTML, Parser) 약어를 하나의 단어로 유지합니다. 그래서 camelCase를 snake_case로, kebab-case를 PascalCase로 바로 바꿀 수 있습니다. 처리는 브라우저 안에서만 이루어집니다.
표기법별 관례
camelCase는 JavaScript·Java의 변수·함수명, PascalCase는 클래스·컴포넌트명, snake_case는 Python 변수·DB 컬럼, kebab-case는 CSS 클래스·URL·파일명, CONSTANT_CASE는 상수·환경변수에 주로 씁니다. 같은 프로젝트에서 여러 언어를 오갈 때(API JSON 키는 snake, 프런트 변수는 camel) 이 도구로 일괄 변환하면 오타를 줄일 수 있습니다.
Title Case의 한계
여기서의 Title Case는 모든 단어의 첫 글자를 대문자로 만드는 단순 규칙입니다. 영어 제목 표기 규범(AP, Chicago 스타일)에서는 a, the, of 같은 관사·전치사를 소문자로 두는데, 그 규칙은 문맥 판단이 필요해 자동화하지 않았습니다. 기사 제목 등에 쓸 때는 결과를 한 번 손봐야 합니다.
숫자와 한글
숫자는 단어의 일부로 취급합니다(item2Name → item2, Name이 아니라 item2Name → item2 Name으로 나뉨). 한글은 대소문자가 없으므로 그대로 유지되며, 한글과 영문이 섞인 문자열은 구분자 기준으로만 나뉩니다.
자주 묻는 질문
약어(URL, ID)가 이상하게 나뉘어요.
getURLPath 같은 경우 URL을 하나의 단어로 인식해 get_url_path가 됩니다. 다만 userID처럼 약어가 끝에 오면 user_id로 풀립니다. 의도와 다르면 입력에서 공백을 넣어 직접 경계를 지정하면 됩니다.
여러 줄을 한 번에 바꿀 수 있나요?
네. 줄마다 따로 변환하며 빈 줄은 그대로 둡니다. "전부 한 번에 보기"만 첫 줄을 기준으로 모든 표기를 나열합니다.