-
Flash of Invisible Text (FOIT)
FOIT는 웹 폰트가 로드되는 동안 텍스트가 전혀 보이지 않는 현상을 말합니다. 이 기간 동안 사용자는 화면에 아무것도 표시되지 않는 것을 보게 됩니다. 웹 폰트가 로드되기 전까지는 텍스트가 완전히 숨겨져 있기 때문에, 폰트 로딩에 시간이 많이 걸릴 경우 사용자 경험이 저하될 수 있습니다. 이러한 현상은 보통 font-display 속성이 block으로 설정되었을 때 발생합니다. 이 설정은 폰트가 로드될 때까지 텍스트 렌더링을 차단합니다.
-
Flash of Unstyled Text (FOUT)
FOUT는 웹 폰트가 로드되기 전에, 웹 페이지가 시스템 폰트나 기본 폰트로 먼저 텍스트를 표시한 다음, 웹 폰트가 로드되면 해당 폰트로 전환되는 현상을 말합니다. 이 과정에서 잠시 동안 스타일이 적용되지 않은 텍스트가 보이게 됩니다. FOUT는 사용자에게 텍스트 내용을 즉각적으로 제공하지만, 폰트가 변경되면서 페이지의 시각적 플래시가 발생할 수 있어, 이는 일부 사용자에게 혼란을 줄 수 있습니다. font-display: swap; 속성을 사용하면 이러한 현상을 관리할 수 있습니다. 이 속성은 웹 폰트가 로드될 때까지 대체 폰트를 사용하도록 합니다.
-
FOIT와 FOUT 관리
font-display 속성: 이 CSS 속성을 사용하여 웹 폰트의 로딩과 렌더링 방식을 제어할 수 있습니다. swap, fallback, optional 등의 값을 통해 FOIT와 FOUT의 영향을 줄일 수 있습니다.
폰트 로딩 전략: 웹 폰트 로딩에는 다양한 JavaScript 라이브러리(예: Web Font Loader)와 기술이 있어, FOIT나 FOUT 현상을 최소화하면서 폰트를 효율적으로 로드할 수 있습니다.
프리로드: <link rel="preload"> 태그를 사용해 중요한 웹 폰트를 미리 로드함으로써, FOIT와 FOUT의 영향을 줄일 수 있습니다.