폭 없는 공백
1. 개요
폭 없는 공백은 텍스트 내에서 줄 바꿈이 가능한 위치를 지정하는 데 사용되는 문자이다. HTML에서는 `
-
제어 문자 -
공백 문자
공백 문자는 단어를 구분하고 텍스트의 구조를 나타내기 위해 사용되며, 언어와 컴퓨터 환경에 따라 다양한 형태로 존재하고 활용된다. -
제어 문자 -
이스케이프 시퀀스
이스케이프 시퀀스는 컴퓨터 주변 장치의 상태를 변경하는 문자열로, 초기 보도 코드에서 시작하여 ASCII 표준을 거쳐 발전했으며 터미널, 프린터, 모뎀 제어 등에 사용되고, C 언어에서는 백슬래시를 사용하여 특수 문자를 표현한다. -
타이포그래피 -
팬그램
팬그램은 특정 문자 집합의 모든 문자를 최소 한 번 포함하는 문장이나 구절로, 완전 팬그램, 자기 열거 팬그램 등 여러 유형이 있으며, 다양한 언어에서 활용되고 수학적 연구 주제로도 다뤄진다. -
타이포그래피 -
ß
ß(에스체트)는 독일어에서 긴 s와 s 또는 z의 합자에서 유래한 문자로, 특정 조건에서 무성음 /s/를 나타내며, 사용 범위가 축소되었으나 대문자 형태(ẞ)가 추가되어 표준 독일어에서 선택적으로 사용될 수 있다.
2. 사용법
폭 없는 공백은 긴 단어나 문장에서 줄 바꿈이 필요한 위치를 나타낼 때 사용된다. 특히 HTML에서 `<wbr>` 요소의 대체로 사용되어, 긴 단어 중간에 줄 바꿈이 가능한 지점을 표시한다. 하지만, 버전 6 이전의 인터넷 익스플로러처럼 일부 웹 브라우저에서는 제대로 표시되지 않을 수 있다.
폭 없는 공백은 하이픈 없이 잠재적인 줄 바꿈 지점을 표시한다는 점에서 부드러운 하이픈과 유사하지만, 부드러운 하이픈은 줄이 끊어지는 지점에 하이픈을 표시한다는 차이점이 있다.
또한, 폭 없는 공백은 태국어, 미얀마어, 크메르어, 일본어와 같이 단어 사이에 공백이 없는 언어에서 단어 분리를 표시하는 데 사용될 수 있다.
양쪽 정렬된 텍스트에서 렌더링 엔진은 고정 폭 공백과 달리 폭 없는 공백으로 구분된 문자 사이에 문자 간 간격(글자 간격)을 추가할 수 있다.
2.1. HTML
HTML에서는 `<wbr>`요소를 대신하여 긴 단어 중간에 줄 바꿈이 가능한 위치를 지정할 수 있다. 그러나 버전 6 이전의 인터넷 익스플로러와 같이 일부 웹 브라우저에서는 이 기능을 제대로 표시하지 못할 수 있다.
다음은 폭 없는 공백을 사용한 예시이다. 모든 단어 사이에 폭 없는 공백이 들어가 있다.
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
같은 문장에 폭 없는 공백을 사용하지 않으면 아래와 같다.
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
브라우저가 폭 없는 공백을 지원하는 경우, 첫 번째 예시는 브라우저 창의 폭을 변경하면 단어 사이에서 줄 바꿈이 발생하지만, 두 번째 예시는 줄 바꿈이 발생하지 않는다.
HTML 페이지에서 HTML 요소 `<wbr>`는 폭 없는 공백과 같은 기능을 수행한다. 인터넷 익스플로러 6에서는 일부 글꼴에서 폭 없는 공백이 지원되지 않았다.
2.2. 줄 바꿈 제어
HTML에서는 `<wbr>`요소의 대체로 긴 단어 도중에서 줄 바꿈 가능한 장소를 나타내는데 사용된다. 다만, 버전 6 이전의 인터넷 익스플로러 등, 이것을 바르게 표시할 수 없는 웹 브라우저도 있다.
이하는 폭 없는 공백을 사용한 예시이다. 모든 단어의 사이에 폭 없는 공백이 들어있다.
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
같은 문장에 폭 없는 공백을 사용하지 않으면 아래처럼 된다.
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
브라우저가 폭 없는 공백에 대응하고 있다면, 첫 번째의 예시는 브라우저의 창 폭을 바꿨을 때에 단어의 사이에서 줄 바꿈이 일어나지만, 두 번째 예시는 줄 바꿈이 없는 것을 알 수 있다.
텍스트에서 폭 없는 공백의 효과를 보여주기 위해, 다음 단어들은 폭 없는 공백으로 구분되었다.
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
반면에, 다음 단어들은 분리되지 않았다.
LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum
첫 번째 텍스트는 단어 경계에서만 줄 바꿈이 되며, 브라우저 창의 크기를 조정하면 이에 따라 텍스트가 다시 줄 바꿈된다. 반면 두 번째 텍스트는 전혀 줄 바꿈되지 않는다.
2.3. 단어 분리 (공백 없는 언어)
폭 없는 공백은 태국어, 미얀마어, 크메르어, 일본어와 같이 단어 사이에 눈에 띄는 공백이 없는 언어에서 단어 분리를 표시하는 데 사용될 수 있다.
2.4. 도메인 이름
ICANN의 규칙은 폭 없는 공백을 포함한 표시되지 않는 문자가 도메인 이름에 포함되는 것을 금지하며, 대부분의 브라우저는 악성 URL이 합법적인 URL과 시각적으로 구별할 수 없도록 하는 동형이의어 공격을 생성하는 데 사용할 수 있기 때문에 도메인 이름 내에서 해당 문자의 사용을 금지한다.
3. 문자 코드
유니코드에서 폭 없는 공백은 ZERO WIDTH SPACE영어로 U+200B에 할당되어 있다.
3.1. 표현 방식
HTML에서는 `` 또는 ``로 참조할 수 있다. 또한, `​`, `​`, `​` 및 `​`와 같은 문자 엔티티도 이름과는 달리 모두 폭 없는 공백을 가리킨다.
TeX에서는 `\hskip0pt`, LaTeX에서는 `\hspace{0pt}`, groff에서는 `\:`로 표현된다.
4. 기타
일반 사용자에게서는 직접 사용할 상황이 없는 기능이지만, 윈도우 XP 이상의 메모장에서는 우클릭 메뉴에서 유니코드 제어 문자 삽입을 통해 이 문자를 직접 추가할 수 있다. (대표적으로 ZWJ, ZWNJ) 드래그해서 이 문자를 선택할 수 있고 복사, 붙여넣기 등의 작업도 정상적으로 가능하다. 폭 없는 문자라는 이름에서 알 수 있듯이 아무리 많이 이 글자를 추가하더라도 문장의 길이가 늘어나지 않기 때문에 육안으로는 얼마나 이 글자가 추가되어 있는지 식별할 방법이 없다.
컴퓨터 내의 파일명에도 적용 가능하다. 폭 없는 문자만을 파일명으로 작성했다면 파일명이 아예 보이지 않는 파일이 생성되고, 문장 중간에 넣었으면 눈으로 식별이 불가능한 같은 이름을 가진 파일이나 폴더를 2개 만들 수 있다.