🔧툴박스
홈계산기텍스트·개발변환·생성디자인생산성For Fun궁합가이드
🔧툴박스무료 도구 36가지설치 없이 바로 쓰는 무료 온라인 도구 36가지
전체 보기모든 도구 보기→

계산기

  • 연봉계산기
  • BMI 계산기
  • 날짜 계산기
  • 몇박 며칠 계산기

텍스트·개발

  • 글자수 세기
  • 원고지 글자수 세기
  • JSON 포맷터
  • 특수문자 복사
  • 구분선 생성기

변환·생성

  • 단위 변환기
  • 양력 음력 변환기
  • 이미지 변환기
  • QR코드 생성기

디자인

  • 색상 도구
  • Box Shadow 생성기

생산성

  • 할일 목록
  • 지출 추적기

For Fun

  • 인생 진행률
  • 번아웃 자가진단

궁합

  • 혈액형 궁합
  • 별자리 궁합
  • 이름 궁합

함께 보면 좋은 서비스

📋합격각— 자격증 시험일정·합격률🏠자취생존가이드— 자취·1인가구🏡둥지— 아파트 청약·분양🛒핫딜— 쇼핑·특가

김군의 다른 서비스

👶맘맵— 임신·출산·육아🐾펫찾기— 반려동물·유기동물🎪놀러가자— 축제·관광·여행⛺캠핑고고— 캠핑·차박·글램핑📅쉬는날— 공휴일·연차 계획🚨삐뽀삐뽀— 응급실·야간약국🚶걷기좋은길— 둘레길·맨발 산책로🚗차곡차곡— 주유·충전·주차장
🌐kimgoon.kr더 많은 서비스 보기
서비스 소개·개인정보처리방침·이용약관

© 2026 툴박스 (tools.kimgoon.kr). All rights reserved.

본 사이트의 계산 결과는 참고용이며, 정확한 정보는 관련 기관에 문의해 주세요.

광고

  1. 홈
  2. /툴박스 가이드
텍스트·문서2026년 3월 27일·약 4분 소요

공백·특수문자가 만드는 보이지 않는 버그 - 제로폭 문자·NBSP 디버깅 가이드

코드와 텍스트에 보이지 않는 문자가 섞이면 문자열 비교가 실패하고 검색이 안 됩니다. 제로폭 문자, 비ASCII 공백, BOM 등 자주 만나는 보이지 않는 문제 케이스와 발견·정리 방법을 정리했습니다.

공백·특수문자가 만드는 보이지 않는 버그 - 제로폭 문자·NBSP 디버깅 가이드

광고

작성 툴박스 운영자·최초 작성 2026년 3월 27일·최종 검토 2026년 3월 27일

툴박스 가이드는 W3C·MDN·국제 표준 문서(RFC/ISO)와 한국인터넷진흥원(KISA) 등 공신력 있는 기관의 공개 자료를 기반으로 작성·검토합니다.편집 방침 보기

보이지 않는 문자란?

화면에는 멀쩡하게 보이는데 코드 비교나 검색에서는 다른 문자열로 인식되는 경험, 한 번쯤 있을 거예요. 데이터를 복사·붙여넣기했더니 갑자기 인식이 안 되거나, 정확히 같은 문자열인데 if 조건에서 false가 나오는 상황이 그렇습니다. 거의 대부분의 원인은 보이지 않는 문자예요. 유니코드에는 글자 폭이 0이거나, 일반 공백처럼 보이지만 실제로는 다른 코드포인트인 문자들이 수십 종 존재합니다. 워드 문서·웹 페이지·SNS·메신저에서 텍스트를 복사하면 이런 문자들이 따라오는 일이 잦아요. 보이지 않으니 디버깅이 까다롭지만 원리만 알면 빠르게 해결할 수 있습니다.

가장 자주 만나는 다섯 가지

실무에서 가장 자주 마주하는 보이지 않는 문자는 다음 다섯 가지입니다.

  • U+200B (Zero-Width Space): 폭 0의 공백. 이메일·SNS에서 자동 줄바꿈 보조용으로 들어감.
  • U+00A0 (Non-Breaking Space, NBSP): 일반 공백처럼 보이지만 다른 코드. 워드·HTML   에서 옴.
  • U+FEFF (BOM, Byte Order Mark): 파일 맨 앞에 붙는 인코딩 표시. UTF-8 with BOM에서 발생.
  • U+202E (RTL Override): 텍스트 방향을 거꾸로 만드는 제어 문자. 보안 공격에 악용되기도.
  • U+3000 (전각 공백): 한국어·일본어 환경에서 따라오는 두 칸 폭의 공백.

코드에서 if (a === b)가 거짓인데 눈으로는 같아 보일 때, 위 다섯 중 하나를 의심하면 90% 정도 맞습니다.

제로폭 문자의 정체

제로폭 문자 중 가장 유명한 건 U+200B(ZWSP)입니다. 화면에서 폭이 0이라 보이지 않지만, 문자열의 길이는 1로 카운트돼요. 자바스크립트에서 'hello'.length는 5이지만 'hel\u200blo'.length는 6이 됩니다. 이메일이나 메신저에서 긴 URL을 자연스럽게 줄바꿈하기 위해 자동으로 삽입되는 경우가 많고, 일부 SNS는 봇 탐지를 어렵게 하려고 사용자 글에 끼워 넣기도 해요. 또 다른 비슷한 친구로는 U+200C(ZWNJ), U+200D(ZWJ)가 있습니다. 이모지의 변형(예: 가족 이모지의 결합)에 사용되어 정상적인 사용처도 있지만, 일반 텍스트에 섞이면 비교 실패의 원인이 됩니다.

비ASCII 공백 - 똑같이 생긴 다른 문자

진짜 골치 아픈 건 일반 공백(U+0020)과 똑같이 보이는 다른 코드포인트들이에요.

  • U+00A0 (NBSP): HTML  , 워드의 줄바꿈 방지 공백. 가장 흔함.
  • U+2009 (Thin Space): 인쇄 식자에서 쓰는 가는 공백.
  • U+202F (Narrow No-Break Space): 시간 표기 등에서 사용.
  • U+3000 (Ideographic Space): 한자 문화권의 두 배 폭 공백.

이런 공백이 사용자 입력에 섞이면 trim()이 동작하지 않거나, 주소: 서울 과 주소: 서울 이 다른 문자열로 비교돼요. 정규식 \s 는 일부만 매칭하니 정확히 빼려면 코드포인트 단위로 처리해야 합니다. 한국어·일본어 사용자가 많은 서비스라면 입력 검증에 NBSP·전각 공백 정규화를 꼭 넣어두는 걸 권장해요.

BOM과 인코딩 표시 문자

UTF-8 파일 맨 앞에 가끔 따라붙는 BOM(U+FEFF) 도 자주 문제를 만듭니다. UTF-16에서는 바이트 순서 표시 용도로 쓰이지만, UTF-8에서는 사실상 불필요한데도 Windows의 메모장이나 일부 도구가 자동으로 붙여요. JSON 파일 맨 앞에 BOM이 있으면 JSON.parse가 실패하고, CSV 파일에 BOM이 있으면 첫 컬럼 이름이 id가 아니라 보이지 않는 BOM 문자가 앞에 붙은 형태가 되는 식이에요. shell script 첫 줄이 #!/bin/bash라면 BOM이 붙는 순간 실행이 안 됩니다. 파일을 다른 OS에서 만들었다 가져왔는데 갑자기 동작이 이상해지면 BOM을 의심해보세요.

발견하는 방법 - 디버깅 기법

보이지 않는 문자를 찾는 가장 빠른 방법 몇 가지입니다.

  • VS Code의 표시 설정: Editor: Render Whitespace를 all로 켜면 공백 종류별 표시. NBSP는 일반 공백과 다른 점으로 보입니다.
  • JS·Python에서 문자열 길이 체크: 눈으로 같은데 length가 다르다면 보이지 않는 문자가 끼어 있어요.
  • 코드포인트 출력: Array.from(s).map(c => c.codePointAt(0)) 같은 식으로 각 문자의 코드포인트를 찍어보면 어디에 어떤 문자가 있는지 즉시 보입니다.
  • 정규식 탐지: 의심 코드포인트 범위를 정규식으로 잡아서 입력을 거름.

이렇게 한 번 발견하면, 입력 단계에서 normalize·trim하도록 코드에 넣어두는 게 재발 방지에 좋습니다.

도구로 한 번에 정리하기

툴박스의 특수문자 정리기는 텍스트에 섞인 보이지 않는 문자, 비표준 공백, BOM 등을 한 번에 감지해 표시하고, 일반 ASCII 공백·줄바꿈으로 정규화해줍니다. 이메일에서 복사한 텍스트, 워드에서 옮긴 본문, 외부 스프레드시트의 데이터를 정리할 때 빠르게 활용하세요. 사용자 입력을 다루는 코드라면 입력 검증에서 같은 정규화를 적용하면 보이지 않는 문자로 인한 검색·비교 실패를 처음부터 막을 수 있어요.

관련 가이드

kimgoon.kr

kimgoon 생활정보 가이드

tools.kimgoon.kr

텍스트·문서 가이드 더 보기

tools.kimgoon.kr

툴박스 도구 모음

참고한 표준·공식 자료

본 글은 다음 표준·문서의 공개 자료를 바탕으로 정리·검토되었습니다. 최신 사양은 각 표준 문서를 함께 확인해 주세요.

  • MDN Web Docs ↗웹 표준·HTML/CSS/JS 공식 문서
  • W3C ↗웹 국제 표준 권고안
  • IETF RFC Editor ↗인터넷 프로토콜·인코딩 표준 원문
  • 한국인터넷진흥원(KISA) ↗보안·암호·개인정보 가이드

잘못된 정보나 갱신이 필요한 부분을 발견하셨다면 contact@kimgoon.kr로 알려주세요. 툴박스 편집 방침을 함께 참고하실 수 있습니다.

태그

#보이지 않는 문자#제로폭 문자#NBSP#BOM#공백#텍스트 디버깅#유니코드
공유

광고

관련 가이드 더 보기

특수문자 입력·복사 완전 가이드: 윈도우·맥 단축키와 기호별 유니코드표
텍스트·문서

특수문자 입력·복사 완전 가이드: 윈도우·맥 단축키와 기호별 유니코드표

8분 읽기

한글 깨짐 완전 해결: UTF-8·EUC-KR·CP949 인코딩 원인과 복구법
텍스트·문서

한글 깨짐 완전 해결: UTF-8·EUC-KR·CP949 인코딩 원인과 복구법

10분 읽기

원고지 매수 계산 공식(÷200)과 공백 기준·타자 수 세기 상황별 Q&A
텍스트·문서

원고지 매수 계산 공식(÷200)과 공백 기준·타자 수 세기 상황별 Q&A

5분 읽기

글자수 세기 도구 활용법 — 자기소개서·블로그·SNS 분량 맞추기
텍스트·문서

글자수 세기 도구 활용법 — 자기소개서·블로그·SNS 분량 맞추기

6분 읽기

Lorem Ipsum의 역사와 더미 텍스트 활용법
텍스트·문서

Lorem Ipsum의 역사와 더미 텍스트 활용법

3분 읽기

camelCase·snake_case·kebab-case - 케이스 컨벤션의 모든 것
텍스트·문서

camelCase·snake_case·kebab-case - 케이스 컨벤션의 모든 것

4분 읽기

다른 서비스의 관련 가이드

2026 추석 연휴 국내여행 지역 고르기 체크리스트 8항목 — 9월 24~27일, 축제 없는 연휴를 채우는 법
놀러가자

2026 추석 연휴 국내여행 지역 고르기 체크리스트 8항목 — 9월 24~27일, 축제 없는 연휴를 채우는 법

11분 읽기

반려견 미용실 맡기기 전 체크리스트 12가지: 등록증·CCTV 확인부터 미용 사고 대응까지
펫찾기

반려견 미용실 맡기기 전 체크리스트 12가지: 등록증·CCTV 확인부터 미용 사고 대응까지

11분 읽기

2026 영유아 발달선별검사(K-DST) '심화평가 권고' 받았을 때 90일 체크리스트
맘맵

2026 영유아 발달선별검사(K-DST) '심화평가 권고' 받았을 때 90일 체크리스트

8분 읽기

← 이전 가이드

CSS Box Shadow 마스터하기 - 자연스러운 깊이감 만드는 그림자 가이드

다음 가이드 →

인코딩·디코딩 종류와 차이 - Base64·URL·HTML 엔티티 완벽 정리

목록으로 돌아가기

목차

  1. 보이지 않는 문자란?
  2. 가장 자주 만나는 다섯 가지
  3. 제로폭 문자의 정체
  4. 비ASCII 공백 - 똑같이 생긴 다른 문자
  5. BOM과 인코딩 표시 문자
  6. 발견하는 방법 - 디버깅 기법
  7. 도구로 한 번에 정리하기
  8. 관련 가이드