문장 대소문자 변환 공식과 스네이크 케밥 파스칼 케이스 규격

대소문자 형식을 정리할 영문 텍스트를 입력창에 적어 넣고, Sentence Case나 프로그래밍용 변수명 포맷으로 1초 만에 일괄 치환해 보세요.

영어 프레젠테이션 슬라이드 타이틀을 적거나, 자바스크립트/파이썬 프로그래밍 변수명을 코딩할 때 영어 단어들의 대소문자(Letter Case) 표기법을 목적에 맞게 일괄 변환해야 하는 번거로운 상황에 자주 부딪힙니다.
영어 텍스트 표기 방식은 가독성과 문법적 약속에 따라 여러 종류가 존재하며, 이를 정밀한 문자열 처리 알고리즘으로 분해해 상황에 맞게 1초 만에 치환하는 공식이 필수적입니다. 본 글에서는 주요 대소문자 변환 케이스별 규칙과 변환 알고리즘 원리를 해설합니다.
1. 영어 대소문자 케이스별 렌더링 공식 명세
영문 텍스트의 가용 포맷들은 다음과 같은 표기법적 정의를 지닙니다:
[ \text{Formatted Text} = \text{Transform}(\text{Tokenize}(S_{\text{original}}), \text{CaseType}) ]
- Sentence Case (문장 첫 글자만 대문자):
문단이나 개별 문장 단위의 첫 글자($s_0$)만 대문자화하고 나머지 단어는 모두 소문자로 정규화합니다.
- 예: "hello, world! this is regex." $\rightarrow$ "Hello, world! This is regex."
- Title Case (단어별 첫 자 대문자):
문장에 포함된 모든 유효 명사/동사 단어들의 첫 자를 대문자로 변경합니다. (단, 전치사나 관사는 가독성을 위해 소문자로 남겨두는 규칙을 적용하기도 합니다.)
- 예: "the lord of the rings" $\rightarrow$ "The Lord of the Rings"
- Snake Case (언더스코어
_결합): 데이터베이스 칼럼명이나 변수명으로 많이 쓰이며, 모든 철자를 소문자화하고 단어 경계를 언더스코어(_) 기호로 결합합니다.- 예: "camelCaseConverter" $\rightarrow$ "camel_case_converter"
- Kebab Case (하이픈
-결합): 웹 페이지 URL 슬러그나 CSS 클래스명에 널리 활용되며, 단어 사이를 하이픈(-)으로 엮어 가독성을 확보합니다.- 예: "KebabCaseStyle" $\rightarrow$ "kebab-case-style"
2. 문단 내 마침표 단위의 Sentence Case 파싱 알고리즘
여러 문장이 복합적으로 들어 있는 줄글 텍스트에서 각 개별 문장의 시작점을 찾아내어 첫 문자만 대문자로 올바르게 파싱해 내기 위한 정규식 치환 공식은 다음과 같습니다:
- 문장 종결 기호 정규식 탐지:
마침표(
.), 물음표(?), 느낌표(!) 뒤에 공백이 동반되는 위치를 경계면으로 분할합니다. - 문자열 첫 문자 대문자화 교체 공식:
이 알고리즘에서 정규표현식function toSentenceCase(text) { return text.toLowerCase().replace(/(^\s*|[.!?]\s+)([a-z])/g, (match, separator, letter) => { return separator + letter.toUpperCase(); }); }/(^s*|[.!?]s+)([a-z])/g은 문자열 최선두 영역(^) 또는 문장 부호와 공백([.!?]s+) 뒤에 오는 영어 소문자 기호([a-z])를 정확히 찾아내어 해당 단어만 대문자로 스무스하게 치환시킵니다.
[!NOTE] 매번 텍스트 전체의 단어를 마우스 드래그로 찾아다니며 직접 지우고 대소문자를 고쳐 쓸 필요 없이, 문장 대소문자 변환기 도구를 활용하면 텍스트를 붙여넣는 즉시 Title, Sentence, Upper, Lower, Snake, Kebab 및 뒤집기 옵션의 다양한 포맷 결과물들을 한 대시보드 화면에서 동시에 획득하여 비교 활용할 수 있습니다.
대소문자 형식을 정리할 영문 텍스트를 입력창에 적어 넣고, Sentence Case나 프로그래밍용 변수명 포맷으로 1초 만에 일괄 치환해 보세요.
3. 케이스 변환 시 전산 개발자가 주의할 예외 팁
- 동양어 결합 예외 차단: 한글, 한자, 일본어 등의 문자군은 알파벳 대소문자 개념 자체가 존재하지 않으므로 변환 엔진 내에서 에러를 유발하지 않도록 알파벳 검사(
[a-zA-Z]) 영역 조건 분기를 확실히 선언해야 한글 명사의 원형이 유실되는 부작용을 원천 방지할 수 있습니다. - 카멜 케이스(camelCase) 분해 주의: 일반 공백이 없고 중간에 대문자가 끼어든
myVarName형태의 카멜 케이스를 스네이크나 케밥 케이스로 변환하고 싶다면, 대문자 바로 앞에 공백을 강제로 가산해 분리하는 정규식 전처리(text.replace(/([A-Z])/g, " $1")) 단계를 선행해야 글자가 달라붙어 깨지는 실수를 피할 수 있습니다.
