백엔드 ↔ 프런트엔드 경계
백엔드는 `user_first_name`을 주는데 프런트엔드는 `userFirstName`을 원합니다. 붙여넣고, 복사하고, 붙여넣으면 — 끝입니다. JSON 일괄 모드를 사용해 샘플 API 응답의 모든 키를 한 번에 변환하세요(이후 결과를 기반으로 codegen 템플릿을 작성하면 됩니다).
어떤 문자열이든 11가지 네이밍 규칙으로 한 번에 변환하세요 — camelCase, PascalCase, snake_case, kebab-case 등. 모든 키를 재귀적으로 다시 쓰는 JSON 키 일괄 모드도 지원합니다. 모두 브라우저에서 실행됩니다.
어떤 문자열이든 11가지 네이밍 규칙으로 한 번에 변환하세요 — camelCase, PascalCase, snake_case, kebab-case 등. 모든 키를 재귀적으로 다시 쓰는 JSON 키 일괄 모드도 지원합니다. 모두 브라우저에서 실행됩니다.
모두 공백 없이 여러 단어로 된 식별자(또는 파일명, URL, CSS 클래스)를 작성하는 방법입니다. camelCase는 첫 단어 이후의 모든 단어를 대문자로 시작합니다(`userFirstName`). JavaScript, Java, Swift에서 사용됩니다. snake_case는 모두 소문자로 쓰고 밑줄로 연결합니다(`user_first_name`). Python, Ruby, SQL에서 사용됩니다. kebab-case는 하이픈을 사용합니다(`user-first-name`). CSS, HTML, URL 슬러그, CLI 플래그에서 사용됩니다. PascalCase는 첫 글자까지 대문자로 시작하는 camelCase입니다(`UserFirstName`). 많은 언어에서 클래스/타입 이름에 사용됩니다.
토크나이저는 두 가지 경계 규칙을 사용합니다: 소문자에서 대문자로(`a` 다음에 `B` = 분리) 그리고 대문자 뒤 Title(연속된 대문자 다음에 소문자가 오면 마지막 대문자 앞에서 분리). 그래서 `XMLHttpRequest`는 `[XML, Http, Request]` → `xml_http_request` / `xmlHttpRequest` / `XmlHttpRequest`가 됩니다. `userIDToken`은 `[user, ID, Token]` → `user_id_token`이 됩니다. 이는 대부분의 언어 스타일 가이드 권장사항과 일치합니다.
식별자와 JSON은 기기를 떠나지 않습니다. DevTools → Network를 열면 변환이나 복사 중에 외부 요청이 0건임을 확인할 수 있습니다.
고전적인 camelCase / snake_case부터 dot.case / path/case까지 — 그리고 중첩된 객체의 모든 키를 이름 변경하는 JSON 키 일괄 모드까지.
camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, COBOL-CASE, dot.case, path/case, Title Case, Sentence case, UPPERCASE, lowercase. 한 번 붙여넣으면 모든 출력을 즉시 확인할 수 있습니다.
모든 입력 스타일에서 식별자를 정확히 분리합니다 — `XMLHttpRequest` → `xml_http_request`, `userIDToken` → `user_id_token`. 약어, 숫자, 혼합된 구분자(_, -, ., /)를 헷갈리지 않고 처리합니다.
중첩된 JSON 객체를 붙여넣고 원하는 스타일로 모든 키를 재귀적으로 다시 쓰세요. 선택적으로 문자열 값까지 변환할 수 있습니다. 배열, 타입, 구조는 그대로 보존됩니다.
각 출력 행에는 자체 복사 버튼이 있습니다 — 클릭하면 값이 클립보드에 들어갑니다. 시각적 확인 표시만 있고 토스트 스팸은 없습니다.
모든 변환은 사용자의 기기에서 JavaScript로 실행됩니다. 식별자, JSON, 클립보드 활동 어떤 것도 외부로 전송되지 않습니다. DevTools → Network를 열어 외부 요청이 0건임을 직접 확인하세요.
프레임워크 런타임 없이 순수 JavaScript로 작성되었습니다. 콜드 로드는 gzip 압축 후 25 KB 미만입니다. 어떤 문자열에 대한 11가지 변환도 1ms 미만에 완료됩니다.
두 가지 모드 — 단일 문자열과 JSON 키 일괄.
단일 문자열은 하나의 식별자 또는 구문에 사용 — 한 번 입력/붙여넣으면 11가지 케이스 출력을 모두 볼 수 있습니다. JSON 키 (일괄)는 중첩된 API 응답이나 설정 파일의 모든 키를 변환해야 할 때 사용하세요.
단일 문자열 모드는 어떤 입력이든 받습니다 — `userFirstName`, `user_first_name`, `user-first-name`, `USER FIRST NAME`, 심지어 `XMLHttpRequest`도 가능합니다. 토크나이저는 이를 정확히 분리하고 모든 출력 스타일로 다시 결합합니다. JSON 모드는 어떤 유효한 JSON 객체든 받습니다 — 깊이는 상관없습니다.
단일 문자열 모드에서는 11가지 출력이 한 번에 나타납니다 — 필요한 것을 선택하세요. JSON 모드에서는 드롭다운에서 하나의 대상 케이스를 선택하면, 객체의 모든 키가 그 스타일로 다시 작성됩니다.
출력 행 옆의 복사 아이콘을 클릭하여 클립보드로 보내세요. JSON 출력의 경우 결과 블록 전체를 복사하세요 — 코드베이스나 API 클라이언트에 바로 붙여넣을 수 있습니다.
한 번 붙여넣고 모든 스타일을 얻는 것이 손가락으로 일일이 이름을 바꾸는 것보다 나은 네 가지 흔한 시나리오.
백엔드는 `user_first_name`을 주는데 프런트엔드는 `userFirstName`을 원합니다. 붙여넣고, 복사하고, 붙여넣으면 — 끝입니다. JSON 일괄 모드를 사용해 샘플 API 응답의 모든 키를 한 번에 변환하세요(이후 결과를 기반으로 codegen 템플릿을 작성하면 됩니다).
Python 라이브러리를 JavaScript로 포팅 중인가요? Python 소스의 snake_case 식별자를 가져와 camelCase 출력으로 실행하세요. 결과를 JS 포트에 그대로 넣으면 됩니다. 스마트 토크나이저는 `__double_underscore`와 끝자리 숫자를 깨뜨리지 않고 처리합니다.
`MY_AWESOME_FEATURE_FLAG`(env 변수 규칙)를 `myAwesomeFeatureFlag`(JS 변수)나 `my_awesome_feature_flag`(Python)로 변환하세요. CONSTANT_CASE / camelCase / snake_case 왕복은 정확히 일치합니다.
BEM은 kebab-case를 기대합니다: `.user-card__avatar--large`. 디자이너로부터 JS 변수명을 받았나요(`userCardAvatarLarge`)? 한 번에 변환하세요. Tailwind 유틸리티, npm 패키지명, URL 슬러그, CLI 플래그 이름에도 유용합니다 — 모두 kebab-case를 선호합니다.
식별자와 JSON은 기기를 떠나지 않습니다. DevTools → Network를 열면 변환이나 복사 중에 외부 요청이 0건임을 확인할 수 있습니다.
navigator.clipboard.writeText API를 사용하며, 어떤 것도 기록되지 않습니다.
네이밍 규칙, API 설계, 리팩터링에 관한 엄선된 글들.
Language conventions, framework defaults, and the team-trumps-style rule. With practical examples for JavaScript, Python, Go, Rust, and CSS.
Why most APIs accidentally pick the wrong style — and three patterns (interceptor, codegen, manual) for keeping both sides happy without the bugs.
모두 공백 없이 여러 단어로 된 식별자(또는 파일명, URL, CSS 클래스)를 작성하는 방법입니다. camelCase는 첫 단어 이후의 모든 단어를 대문자로 시작합니다(`userFirstName`). JavaScript, Java, Swift에서 사용됩니다. snake_case는 모두 소문자로 쓰고 밑줄로 연결합니다(`user_first_name`). Python, Ruby, SQL에서 사용됩니다. kebab-case는 하이픈을 사용합니다(`user-first-name`). CSS, HTML, URL 슬러그, CLI 플래그에서 사용됩니다. PascalCase는 첫 글자까지 대문자로 시작하는 camelCase입니다(`UserFirstName`). 많은 언어에서 클래스/타입 이름에 사용됩니다.
토크나이저는 두 가지 경계 규칙을 사용합니다: 소문자에서 대문자로(`a` 다음에 `B` = 분리) 그리고 대문자 뒤 Title(연속된 대문자 다음에 소문자가 오면 마지막 대문자 앞에서 분리). 그래서 `XMLHttpRequest`는 `[XML, Http, Request]` → `xml_http_request` / `xmlHttpRequest` / `XmlHttpRequest`가 됩니다. `userIDToken`은 `[user, ID, Token]` → `user_id_token`이 됩니다. 이는 대부분의 언어 스타일 가이드 권장사항과 일치합니다.
JSON 객체를 붙여넣으세요 — 깊게 중첩된 것도 가능합니다 — 그리고 대상 케이스 스타일을 선택하세요. 도구는 트리 전체를 깊이 우선 순회하며, 모든 키(배열 내부의 키 포함)를 변환하고 재구성된 JSON을 출력합니다. 배열, 타입(number / boolean / null), 구조는 정확히 보존됩니다. "문자열 값도 함께 변환"을 켜면 문자열 값을 가진 모든 필드의 내용도 동일한 토크나이저를 통해 다시 작성됩니다.
먼저 언어의 주된 규칙을 따르고, 그다음 팀의 규칙을 따르세요. 기본값으로: JS / Java / Swift / Kotlin / Go에는 camelCase(공개 이름은 PascalCase 사용), Python / Ruby / Rust / SQL 컬럼에는 snake_case, CSS 클래스 / HTML 속성 / URL 경로 / npm 패키지 / CLI 플래그에는 kebab-case, 환경 변수와 언어 상수에는 SCREAMING_SNAKE_CASE를 사용하세요. 계층 간(snake_case API → camelCase 프런트엔드) 변환할 때는 단일 경계를 정하고 시스템의 나머지 부분은 일관되게 유지하세요.
없습니다. 토큰화, 모든 변환, JSON 키 일괄 모드 모두 브라우저에서 JavaScript로 실행됩니다. DevTools → Network를 열면 사용 중에 외부 요청이 0건임을 확인할 수 있습니다. 쿠키 동의 상태용 쿠키 하나와 언어 설정용 쿠키 하나를 사용하며, 그게 전부입니다.