기타 Lobsters · 1일 전

글자가 네모 박스(□)로 깨져 나오는 진짜 이유: 폰트의 마지막 보루 이야기

핵심 요약
  • 글자가 네모 박스나 물음표로 깨져 나오는 현상은 단순 버그가 아니라 지원하지 않는 문자를 처리하는 '폰트 폴백(Font Fallback)' 메커니즘 때문이다.
  • 모든 언어와 기호를 하나의 폰트에 다 그릴 수 없기 때문에, 디자이너가 구현하지 않은 문자는 최후의 대체 글리프인 '.notdef'로 출력된다.
  • 화면에는 빈 네모로 깨져 보이더라도 내부 유니코드 데이터는 보존되며, 다른 호환 폰트를 통해 원래 문자를 복원해 낼 수 있다.
요약 스마트폰이나 PC를 쓰다 보면 문자가 네모 박스(□)나 물음표로 깨져 나오거나, 멀쩡하던 이모지가 상대방에겐 분해되어 전송되고, 문장에 이모티콘 하나 넣었을 뿐인데 줄 간격이 갑자기 어색하게 덜컥 벌어지는 현상을 누구나 한 번쯤 겪어봤을 것입니다. 디자인 툴 피그마(Figma)의 디자인 디렉터 마르친 비하리(Marcin Wichary)는 이런 현상이 단순한 기계 오류가 아니라 컴퓨터 타이포그래피의 핵심 작동 원리인 '폰트 폴백(Font Fallback)'에서 비롯된 것이라고 설명합니다. 폰트 디자이너는 서체 하나를 만들 때 알파벳, 숫자, 특수기호 등 수백 개에서, 한중일 문자의 경우 수천 개에 달하는 글리프(glyph, 문자 모양)를 일일이 그려야 합니다. 하지만 모든 언어권과 기호를 하나의 폰트에 전부 담는 것은 물리적으로 불가능하기에 디자이너는 결국 어느 시점에서 타협을 보게 됩니다. 이때 폰트에 포함되지 않은 문자를 표시해야 할 때 호출되는 최후의 수단이 바로 '.notdef' 글리프입니다. 금속 활자 시절에는 손에 쥔 활자 외의 글자를 요구하는 일이 불가능했지만, 컴퓨터 환경에서는 과거의 텍스트나 존재하지 않는 폰트의 문자를 불러오는 상황이 흔합니다. 이에 폰트는 "이 문자가 어떻게 생겼는지 모른다"는 신호로 빈 사각형, 엑스표가 쳐진 박스, 물음표 상자 같은 .notdef 기호를 화면에 띄웁니다. 비록 화면에는 깨진 네모로 보이지만 내부 데이터(유니코드)는 그대로 유지되기 때문에, 해당 문자를 지원하는 다른 서체로 바꾸면 본래 글자가 정상적으로 나타나게 됩니다. 웹 브라우저나 운영체제는 이러한 결함을 메우기 위해 첫 번째 폰트에 원하는 글자가 없을 경우 차순위 폰트로 넘어가 글자를 찾아내는 연쇄적인 '폰트 폴백' 시스템을 갖추고 있으며, 우리가 일상에서 겪는 수많은 글꼴 깨짐과 정렬 어긋남은 바로 이 보이지 않는 대체 시스템의 흔적입니다.
Sponsored · 광고