대소문자 변환기 & 텍스트 도구

대소문자 변환기 & 텍스트 도구
모든 표기법을 한 번에 보여줍니다. 여러 줄을 넣으면 줄 단위로 변환됩니다.
줄 단위

입력
글자 0
단어 0
줄 0
바이트 0
줄 도구
변환 결과
camelCase
—
PascalCase
—
snake_case
—
SCREAMING_SNAKE
—
kebab-case
—
Train-Case
—
dot.case
—
path/case
—
Title Case
—
Sentence case
—
UPPER CASE
—
lower case
—
aLtErNaTiNg
—
url-slug
—

한 번 붙여넣으면 모든 표기법이 동시에 나옵니다. 필드 목록을 데이터베이스와 JSON API, TypeScript 모델 사이에서 옮길 때처럼 계층마다 다른 표기를 요구하는 상황에 씁니다.

식별자 이름을 언어 사이에서 옮긴다는 것은 서로 호환되지 않는 관례 사이를 오간다는 뜻입니다. 자바스크립트 변수는 camelCase, 클래스와 컴포넌트는 PascalCase, 파이썬과 SQL 컬럼은 snake_case, URL과 CSS는 kebab-case, 환경 변수는 CONSTANT_CASE입니다.

여기서는 구분자뿐 아니라 대소문자가 바뀌는 경계에서도 단어를 나눕니다. 그래서 HTTPResponse와 http_response가 모두 제대로 분해되고 한 덩어리로 뭉개지지 않습니다. 단순한 변환기가 실패하는 지점이 바로 이 약어 처리입니다. 함께 있는 줄 단위 도구 — 정렬, 중복 제거, 공백 정리, 번호 매기기, 뒤집기 — 는 그렇지 않으면 일회용 스크립트를 짜야 하는 자잘한 텍스트 작업을 대신합니다.

자주 부딪히는 두 관례는 이름을 붙여 둘 값어치가 있습니다. HTTP 헤더 이름은 관례적으로 Content-Type, X-Request-Id 같은 Train-Case 이고, 같은 값이 대부분의 언어에서는 snake_case 나 camelCase 로 나타납니다. 변환기들이 서로 다르게 판단하는 지점은 이름 가운데 들어간 약어입니다. XMLHttpRequest, XmlHttpRequest, XML_HTTP_REQUEST 는 같은 이름에 대한 모두 나름대로 타당한 해석입니다. 구분자뿐 아니라 대소문자 경계에서도 쪼개는 것이 HTTPResponse 를 하나의 뭉뚱그려진 단어로 만들지 않고 HTTP 와 Response 로 갈라내는 방법입니다.

줄 단위 유틸리티는 안 그러면 일회용 스크립트가 될 일들을 대신합니다. 순서를 유지한 채 중복 없애기, 대소문자를 무시한 정렬, 붙여넣기에 딸려 온 줄 끝 공백 지우기, 참조용으로 줄 번호 매기기, 순서 뒤집기 같은 것들입니다. 편집기에서 하면 1분, 여기서는 1초 걸리고, 어느 것도 터미널을 열 만한 일은 아닙니다. 페이지 안에서 처리하므로 텍스트가 밖으로 나가지 않는다는 점도 중요합니다. 목록이 고객 이름이나 내부 호스트명일 때 특히 그렇습니다.

표기 변환이 언제나 되돌릴 수 있는 것은 아니고, 어디서 멈추는지 알아 두면 도움이 됩니다. camelCase 를 snake_case 로 바꿨다가 되돌리면 원래대로 돌아오지만, 문장부호가 있는 문장을 어떤 프로그래밍 관례로 바꾸면 되돌아오지 않습니다. 문장부호가 인코딩되지 않고 버려지기 때문입니다. 비 ASCII 문자도 경계입니다. 한국어, 일본어, 중국어에는 대소문자 자체가 없으므로, 섞인 문자열에서는 라틴 문자만 바뀌고 나머지는 그대로 남습니다. 원하는 동작이 맞고, 결과가 절반만 변환된 것처럼 보이는 이유이기도 합니다.

대소문자 변환이 로케일에 따라 달라지는 악명 높은 자리가 하나 있습니다. 터키어에는 점 없는 i와 점 있는 i가 따로 있어서, i의 대문자가 대부분의 언어에서는 I이지만 터키어에서는 점 있는 대문자이고, I의 소문자는 점 없는 쪽입니다. 파일 이름이나 헤더 이름, 언어 태그를 비교하려고 문자열을 대문자로 바꾸는 코드는 터키어 환경에서 틀린 답을 내놓고, 그 버그는 해당 로케일 사용자에게만 나타납니다. 이 페이지는 브라우저 로케일이 아니라 불변 규칙으로 변환합니다. 결과가 어디서나 같고 식별자로 써도 안전한 이유입니다.

대소문자 변환기 & 텍스트 도구 사용법

  1. 왼쪽에 텍스트나 식별자 목록을 붙여넣습니다. 한 줄에 하나씩이 가장 편합니다.
  2. 오른쪽에서 열네 가지 변환 결과를 확인합니다. 입력하는 즉시 갱신됩니다.
  3. 행의 아이콘으로 하나만 복사하거나, 전체 내보내기로 모든 변환을 텍스트 파일로 받습니다.
  4. 변환 전에 줄 도구로 정렬, 중복 제거, 공백 정리, 번호 매기기, 따옴표 처리를 할 수 있습니다.

알아두면 좋은 점

  • 줄 단위를 켜 두면 각 줄이 따로 변환됩니다. 컬럼 목록을 다룰 때 원하는 동작입니다. 끄면 전체를 한 문장으로 봅니다.
  • 약어를 인식하므로 HTTPResponseCode가 h_t_t_p_response_code가 아니라 http_response_code가 됩니다.
  • 입력 형식이 일관될 필요는 없습니다. camelCase, snake_case, kebab-case, 점, 공백이 한 번에 섞여 있어도 모두 올바르게 분리합니다.
  • 따옴표 + 쉼표는 평범한 목록을 바로 붙여넣을 수 있는 배열 리터럴로 바꿔 줍니다.

자주 묻는 질문

영어가 아닌 텍스트도 되나요?

됩니다. 단어 분리에 유니코드 문자·숫자 분류를 쓰기 때문에 한국어, 일본어, 악센트가 붙은 라틴 문자가 사라지지 않고 보존됩니다. 대소문자 변경은 대소문자가 있는 문자에만 적용됩니다.

kebab-case와 url-slug는 뭐가 다른가요?

거의 같지만 url-slug는 앞뒤 구분자를 추가로 제거합니다. 제목에서 URL 경로를 만들 때 필요한 처리입니다.

입력한 내용이 업로드되나요?

아니요. 모든 변환은 브라우저 안에서 자바스크립트로 처리합니다. 서버로 전송되지도, 저장되지도 않습니다.