공백문자(보이지 않는 문자)란?
공백문자는 빈칸으로 보이거나 아예 아무것도 보이지 않지만, 여전히 텍스트로 취급되는 Unicode 문자입니다. 빈 이름이나 빈 메시지를 거부하는 앱도 이 문자는 받아들이는데, 소프트웨어 입장에서는 입력란이 비어 있지 않기 때문입니다. 그래서 많은 사람이 복사해서 붙여넣을 투명문자, 빈칸 문자, 보이지 않는 텍스트를 찾습니다.
가장 많이 쓰이는 것은 Hangul Filler(한글 채움 문자, U+3164, ㅤ)입니다. 한글 자모에 속한 문자로 음절의 빈 자리를 채우는 용도이며, 대부분의 글꼴에서 글자 한 칸 너비의 빈칸으로 표시됩니다. Braille Pattern Blank(빈 점자 패턴, U+2800)는 튀어나온 점이 하나도 없는 점자 칸이고, Zero Width Space(폭 없는 공백, U+200B)는 공간을 전혀 차지하지 않습니다.
이 도구에서 모두 사용할 수 있습니다. 위의 버튼에서 필요한 문자를 복사하거나, 최대 1,000개를 한 번에 생성하거나, 숨은 문자 찾기 & 제거 탭으로 전환해 다른 곳에서 붙여넣은 텍스트에 어떤 보이지 않는 문자가 숨어 있는지 확인하세요. 모든 처리는 브라우저에서 이루어지며, 붙여넣은 내용은 업로드되지 않습니다.

공백문자 복사하고 붙여넣는 방법
공백 문자는 두 번만 탭하면 복사할 수 있습니다. 복사한 문자가 눈에 보이지 않으므로, 도구가 빈 영역을 강조 표시해 문자가 실제로 들어 있는지 확인할 수 있게 해 줍니다.
페이지 맨 위의 Hangul Filler 카드에서 복사를 클릭하세요. 가장 많은 곳에서 통하는 보이지 않는 문자입니다.
이름 입력란, 채팅창, 프로필 소개에 Ctrl+V(Mac은 Cmd+V)로 붙여넣거나, 휴대폰에서는 길게 눌러 붙여넣기를 선택하세요.
앱이 문자를 지워 버리거나 이름이 비어 있다고 하면, 표에서 Braille Pattern Blank나 Halfwidth Hangul Filler(반각 한글 채움 문자)를 써 보세요.
보이지 않는 텍스트 생성기로 공백 문자를 최대 1,000개까지 한 번에 복사할 수 있습니다. 예를 들어 이름의 최소 글자 수를 채울 때 유용합니다.
Advertisement
어떤 공백문자를 써야 하나요?
보이지 않는 문자는 몇 가지 그룹으로 나뉘며, 어디에 붙여넣느냐에 따라 알맞은 문자가 달라집니다. 가장 중요한 여섯 가지는 다음과 같습니다.
빈칸으로 표시되는 한글 자모 문자입니다. 앱은 이것을 공백이 아니라 글자로 취급하므로, 일반 공백을 지워 버리는 앞뒤 공백 제거(trim)에도 살아남습니다. 빈 닉네임과 빈 메시지에 가장 흔히 쓰입니다.
점이 하나도 없는 점자 칸입니다. 공백(whitespace)이 아니라 기호이므로, 프로필 소개, 캡션, 게시물에서 원래는 사라졌을 빈 줄을 유지해 줍니다.
공간을 전혀 차지하지 않습니다. 긴 단어나 URL이 줄바꿈되도록 하거나, 단어를 나눠 링크나 멘션으로 바뀌지 않게 할 때 씁니다.
U+200D는 여러 이모지를 하나의 그림으로 붙입니다(👨👩👧은 이모지 세 개를 이 문자로 이은 것입니다). U+200C는 페르시아어, 힌디어 같은 문자 체계에서 글자끼리 이어지지 않게 막습니다.
일반 공백처럼 보이지만 줄바꿈을 막아 "10 km"나 "Mr. Smith"처럼 붙어 있어야 할 말을 한 줄에 유지합니다. HTML에서는 로 씁니다.
중국어·일본어·한국어 조판에서 쓰는 전각 공백으로, CJK 문자 한 글자만큼 넓습니다.
게임과 앱의 빈 닉네임·빈 메시지
대부분의 게임과 앱은 이름이나 메시지가 비어 있지 않은지 검사하며, 그 전에 앞뒤 공백부터 제거하는 경우가 많습니다. 일반 공백으로만 된 이름은 잘려서 아무것도 남지 않으므로 거부됩니다. Hangul Filler나 Braille Pattern Blank는 소프트웨어 입장에서 공백이 아니므로 검사를 통과하면서도 여전히 비어 보입니다.
플랫폼마다 규칙이 다르고 필터도 수시로 바뀌므로, 특히 닉네임 변경에 게임 재화가 드는 경우에는 쓰기 전에 먼저 테스트해 보세요.
빈 게임 닉네임: 배틀그라운드 모바일, Free Fire 같은 모바일 게임에서 빈 닉네임이나 띄어쓰기가 들어간 닉네임을 만들 때 흔히 Hangul Filler를 씁니다. 단어 사이에 넣으면 간격을 더 벌릴 수 있습니다.
빈 채팅 메시지: 카카오톡, LINE, 텔레그램 같은 메신저에서 Hangul Filler나 Braille Pattern Blank 하나만 보내는 방법이 흔히 쓰입니다. 앱이 이를 텍스트로 인식하면 받는 사람에게는 빈 말풍선으로 보입니다.
프로필 소개와 캡션의 줄바꿈: 비어 있는 줄에 Braille Pattern Blank를 넣으면 Instagram이나 TikTok이 지워 버리는 줄 간격을 유지할 수 있습니다.
Windows의 이름 없는 폴더: 바탕 화면 폴더의 이름을 바꿀 때 숫자 키패드로 Alt+255를 입력하면 Windows가 줄바꿈 없는 공백을 넣어 폴더 이름이 보이지 않게 됩니다(언어 설정에 따라 다를 수 있음).
단어 붙여 두기: 숫자와 단위 사이에 줄바꿈 없는 공백을 넣으면 그 사이에서 줄이 바뀌지 않습니다.
Advertisement
보이지 않는 텍스트 vs 공백 vs 폭 없는 문자
모두 비어 보이지만 소프트웨어는 이들을 다르게 처리합니다. 차이를 알면 왜 어떤 문자는 앱에서 통하고 어떤 문자는 통하지 않는지 이해할 수 있습니다.
빈 글자와 기호
Hangul Filler, Halfwidth Hangul Filler, Braille Pattern Blank. 눈에 보이는 너비가 있고 공백(whitespace)이 아닌 글자나 기호로 분류되므로, JavaScript의 trim() 같은 공백 제거 함수가 건드리지 않습니다.
Unicode 공백
줄바꿈 없는 공백, en 공백, em 공백, 얇은 공백(thin), 아주 얇은 공백(hair), 전각 공백. 너비만 다른 공백(whitespace) 문자이며 대부분의 trim 함수가 제거하기 때문에 빈 닉네임에는 잘 통하지 않습니다.
폭 없는 문자
Zero Width Space, Joiner, Non-Joiner, Word Joiner, 그리고 바이트 순서 표식(U+FEFF). 공간을 차지하지 않고 대부분 보이지 않는 서식 제어 문자라서, 찾기 어려운 버그의 원인이 되기도 합니다.
보이지 않는 문자를 찾아서 제거하는 방법
숨은 문자는 의도하지 않은 곳에 들어갔을 때 문제를 일으킵니다. 웹 페이지, PDF, Word 문서, 스프레드시트, 메신저에서 복사한 텍스트에는 폭 없는 공백, 줄바꿈 없는 공백, 바이트 순서 표식이 섞여 있는 경우가 많습니다. 2025년에는 일부 AI 챗봇 답변에 좁은 줄바꿈 없는 공백(U+202F)이 들어 있었다는 사용자 보고도 있었습니다.
숨은 문자 찾기 & 제거 탭으로 전환해 텍스트를 붙여넣으세요. 숨은 문자가 있는 자리마다 코드 포인트(예: U+200B)로 표시되고, 종류별 개수도 함께 보여 줍니다. 클릭 한 번으로 깨끗한 사본을 얻을 수 있습니다. 폭 없는 문자와 채움 문자는 제거되고, 특수 공백은 일반 공백으로 바뀝니다.

컴파일되지 않는 코드: "illegal character U+200B" 같은 오류나, JSON 파서가 첫 바이트(바이트 순서 표식)에서 실패하는 경우.
일치하지 않는 비밀번호와 아이디: 비밀번호와 함께 복사된 폭 없는 공백 하나 때문에 전혀 다른 비밀번호가 됩니다.
깨진 링크와 검색: URL, 이메일 주소, 검색어 안에 숨은 문자가 있으면 겉보기에는 정상이어도 실패합니다.
지저분한 데이터 가져오기: 바이트 순서 표식으로 시작하거나, 숫자 파싱을 망가뜨리는 줄바꿈 없는 공백이 들어 있는 스프레드시트와 CSV 파일.
Advertisement
HTML, JavaScript, Python에서 보이지 않는 문자 다루기
개발자는 보이지 않는 문자를 직접 붙여넣는 대신 이스케이프 코드로 쓸 수 있어 소스 코드를 읽기 쉽게 유지할 수 있습니다. 실제 바이트를 보려면 문자를 바이너리 번역기에 붙여넣으세요. Hangul Filler는 UTF-8에서 3바이트, 11100011 10000101 10100100입니다.
ㅤ <!-- Hangul Filler -->
⠀ <!-- Braille Pattern Blank -->
​ <!-- Zero Width Space -->
<!-- No-Break Space -->const HIDDEN = /[\u00AD\u200B-\u200F\u2060-\u2064\uFEFF\u115F\u3164\uFFA0\u2800]/g
text.match(HIDDEN) // list them
const clean = text.replace(HIDDEN, '')import re
HIDDEN = re.compile('[\u00ad\u200b-\u200f\u2060-\u2064\ufeff\u115f\u3164\uffa0\u2800]')
clean = HIDDEN.sub('', text)grep -nP '[\x{200B}-\x{200F}\x{FEFF}]' file.txt더 많은 텍스트·Unicode 도구
보이지 않는 문자는 Unicode의 한 부분일 뿐입니다. 아래 도구로 일상적인 텍스트 변환의 나머지를 해결하세요.