줄바꿈 제거 도구
텍스트에서 줄바꿈을 빠르게 제거, 여러 처리 모드 지원
처리 방법 선택
줄바꿈 제거란?
줄바꿈 제거는 텍스트의 줄바꿈 문자를 처리하거나 삭제하는 작업입니다. 줄바꿈 문자는 텍스트 표시 형식을 제어하는 특수 문자로, 다른 시스템이 다른 줄바꿈 문자 표준을 사용합니다: Windows는 CRLF(\r\n), Unix/Linux는 LF(\n), 초기 Mac은 CR(\r)을 사용했습니다. 본 도구는 모든 일반적인 줄바꿈 문자 형식 처리를 지원하며, 네 가지 처리 모드를 제공합니다: 모든 줄바꿈 제거, 줄바꿈을 공백으로 변환, 빈 줄 제거, 빈 줄 병합하여 다양한 시나리오의 텍스트 정리 필요를 충족합니다.
사용 방법
사용 방법
- 처리할 텍스트를 왼쪽 입력란에 입력하거나 붙여넣으세요.
- 처리 모드를 선택하세요 (모든 줄 바꿈 제거, 줄 바꿈을 공백으로 변환 등)
- 결과는 오른쪽에 실시간 미리보기로 자동 표시됩니다.
- '복사'를 클릭해 결과를 복사하거나, '스왑'을 클릭해 결과를 입력으로 옮겨 추가 처리하세요.
텍스트 정리 팁
- 단어를 분리해 유지하려면 '줄 바꿈을 공백으로 변환'을 선택하세요. 모든 줄 바꿈을 제거하면 단어나 필드가 의도치 않게 합쳐질 수 있습니다.
- CSV, 코드, 주소처럼 줄 바꿈이 의미를 갖는 구조화된 데이터는 복사 전 결과를 미리 확인해 주세요.
활용 사례
기술 원리
각 모드는 전역 정규식을 사용한 String.prototype.replace 한 번의 호출입니다. removeAll은 /[\r\n]+/g을 사용하여 빈 문자열로 대체하고, 줄바꿈-공백 변환은 /[\r\n]+/g을 단일 ' '로 대체하며, 빈 줄 병합은 /(\r?\n){2,}/g을 '\n\n'로 대체하여 세 개 이상의 연속 줄바꿈을 하나의 빈 줄로 줄입니다. 빈 줄 제거는 /\r?\n/으로 분할한 뒤 트리밍 후 빈 항목을 필터링하고 '\n'로 다시 합칩니다. [\r\n] 문자 클래스를 사용하는 것은 의도적입니다. CRLF(\r\n, DOS 이후 Windows), LF(\n, Unix와 현대 macOS), 단독 CR(\r, System 9까지의 클래식 Mac OS) 등 세 가지 대표적인 줄바꿈 형식이 같은 파일에서 혼합되어 나타날 수 있기 때문이며, 이는 플랫폼 간 복사-붙여넣기나 메모장에서 Unix 파일을 편집할 때 흔히 발생합니다. 추가적인 유니코드 줄바꿈 지점인 U+2028 LINE SEPARATOR와 U+2029 PARAGRAPH SEPARATOR(Unicode UAX #14 줄바꿈 알고리즘에 정의, ES2019 문자열 리터럴부터 JavaScript에서 인식)도 있지만 실제로는 드뭅니다. 본 도구는 현재 이를 일반 문자로 취급하며, 이는 채팅 앱에서 붙여넣을 때 대부분의 사용자가 기대하는 동작입니다. UTF-8 파일 시작의 BOM(U+FEFF)도 변경 없이 통과합니다 — 엄격한 파서라면 별도로 제거하세요. 실시간 업데이트는 React useState/useMemo 페어로 구동됩니다: 제어 textarea가 입력을 기록하고, 메모가 모든 키 입력마다 결과를 다시 계산하며, React의 조정 알고리즘이 출력 패널만 다시 렌더링합니다. 수백 KB까지의 문자열에 대한 정규식 치환은 최신 V8에서 1밀리초 이내에 완료되므로 디바운싱이 필요 없으며, 수 메가바이트의 입력이라도 60Hz 기준 16ms 프레임 예산을 훨씬 밑도는 비용입니다.
- Remove-all: text.replace(/[\r\n]+/g, '') — 줄바꿈 문자열을 완전히 제거, JSON 문자열 리터럴이나 .env 값에 적합
- 줄바꿈-공백 변환: text.replace(/[\r\n]+/g, ' ') — 공백이 중복되지 않으면서 줄 바뀐 단락의 단어 경계를 보존
- 빈 줄 병합: text.replace(/(\r?\n){2,}/g, '\n\n') — 연속된 빈 줄을 하나로 압축하여 단락 구조를 유지
- 빈 줄 제거: split(/\r?\n/).filter(l => l.trim() !== '').join('\n') — 내용이 있는 줄만 유지하고 줄바꿈을 LF로 정규화
- 줄바꿈 형식: CRLF(Windows \r\n, 원래 타이프라이터 캐리지리턴+라인피드), LF(Unix \n, 1970년대부터), CR(클래식 Mac ~System 9) — [\r\n] 문자 클래스가 세 가지 모두 포착; Unicode U+2028과 U+2029(UAX #14)는 ES2019 문자열 리터럴에서 인식되지만 사용자 입력에서는 드묾
- 파일 시작의 BOM(U+FEFF)은 그대로 유지 — 다음 단계가 엄격한 JSON 또는 CSV 파서라면 text.replace(/^\uFEFF/, '')로 제거
- Git의 core.autocrlf=true는 체크아웃 시 CRLF↔LF를 정규화 — 이미 잘못된 줄바꿈으로 도착한 파일을 Git이 잡지 못했을 때 이 도구를 사용하세요
예시
PDF 복사 텍스트 정리
원본: Thi s is
from PDF
copied
content
변환 후: ThisisfromPDFcopiedcontent코드 압축 예시
원본: function hello() {
return 'world';
}
압축: function hello(){return 'world';}글 단락 정리
단락 간격은 유지하면서 불필요한 빈 줄을 제거하여 깔끔하고 정돈된 글 형식을 만듭니다자주 묻는 질문
어떤 종류의 줄바꿈을 제거하나요?
세 가지 줄 끝 형식 모두를 처리합니다. LF(\n, Unix/macOS), CRLF(\r\n, Windows), CR(\r, 클래식 Mac). 결과는 한 줄로 합쳐집니다. 옵션으로 탭, 연속 공백, 기타 공백 문자도 함께 제거하거나 정규화할 수 있습니다.
단락 간격은 보존되나요?
'단일 공백으로 합치기'를 켜면 각 줄바꿈을 공백으로 바꿉니다. '완전히 제거'를 켜면 아무것도 넣지 않고 이어 붙입니다. 빈 줄로 단락을 구분하는 글이라면 단락 구분(줄바꿈 1개)은 유지하고 단락 안의 줄 바꿈만 제거하는 옵션도 있습니다. 붙여넣은 PDF 텍스트의 줄바꿈을 풀 때 자주 씁니다.
붙여넣은 텍스트에 안 지워지는 줄바꿈이 보이는데요?
아마 소프트 줄바꿈이거나 U+2028(LINE SEPARATOR), U+0085(NEL) 같은 보이지 않는 구분자일 겁니다. 일반 줄바꿈 제거 대신 '모든 공백 구분자 제거'(유니코드 인식 옵션)를 켜세요. 일부 PDF 복사본에는 0폭 공백도 섞여 있으니 '보이지 않는 문자 제거'도 켜세요.
코드의 텍스트 결합과 뭐가 다른가요?
동작은 똑같고 단지 GUI일 뿐입니다. JavaScript에서 `text.replace(/\r?\n/g, ' ').trim()`이 하는 것과 같은 일을 합니다. 스크립트를 짤 거면 코드로, 일회성 붙여넣기를 정리할 거면 여기서 하세요.
줄 끝 공백과 이중 공백도 제거되나요?
'연속 공백 합치기'를 켜면 됩니다. 원문이 정렬용으로 여러 공백을 썼을 때 유용합니다. 줄을 합치기 전에 각 줄 끝의 공백은 자동으로 제거됩니다.
한·중·일 텍스트에서도 동작하나요?
네. 기본적으로 한자·일본어·한글 사이의 줄바꿈을 제거할 때 서양식 공백을 끼워 넣지 않습니다. 동아시아 문장부호 관습에서는 글자 사이에 공백을 두지 않기 때문입니다. 영어와 CJK가 섞인 텍스트라면 '단어 간격 보존' 옵션을 켜세요.
텍스트가 업로드되나요?
아니요. 치환은 브라우저 안에서 실행됩니다. 붙여넣은 텍스트는 외부로 전송되지 않습니다.