FontFace를 활용하여 웹사이트의 글꼴을 동적으로 로딩하기

2023. 12. 17. 16:12·Frontend/Development
728x90
SMALL

FontFace란?

Web API의 FontFace는 CSS에서 사용할 수 있는 외부 글꼴을 로드하고 관리하는 역할을 합니다. FontFace를 사용하면 다음과 같은 상황에서 유용하게 사용할 수 있습니다.

 

1. 웹사이트에 특정 글꼴을 사용하고 싶은 경우

2. 웹사이트에서 지원하지 않는 글꼴을 사용하고 싶은 경우

3. 사용자가 웹사이트에서 특정 글꼴을 선택하는 경우 해당 글꼴을 동적으로 로드하는 경우

 

예제 코드

// MyComponent.js
import React from 'react';

const MyComponent = () => {
  // fonts 배열은 커스텀 폰트 정보를 담고 있습니다.
  // ex) 서버에서 불러온 font 정보들
  const fonts = [
    {
      family: 'CustomFont',
      fileUrl: '/path/to/custom-font.woff2',
    },
    // 추가적인 폰트 정보들...
  ];

  React.useEffect(() => {
    const loadFontFace = () => {
      fonts.forEach(font => {
        const fontFile = new FontFace(font.family, `url(${font.fileUrl ?? ''})`);

        fontFile
          .load()
          .then(e => {
            document['fonts'].add(e);
          })
          .catch(e => {
            console.error(font.family, e);
          });
      });
    };

    loadFontFace();
  }, [fonts]);

  return (
    <div className="my-component">
      <p style={{ fontFamily: 'CustomFont, sans-serif' }}>
        안녕하세요, 웹 폰트의 힘을 느껴보세요!
      </p>
    </div>
  );
};

export default MyComponent;

 

 

FontFace를 사용 시 고려해야 할 사항

  1. 글꼴의 크기가 크면 로드 시간이 오래 걸릴 수 있습니다.
    • FontFace는 글꼴을 웹페이지에 로드할 때 사용됩니다. 글꼴의 크기가 크면 로드 시간이 오래 걸릴 수 있습니다. 따라서, 글꼴의 크기를 최소화하여 로드 시간을 줄이는 것이 좋습니다.
  2. 글꼴의 라이선스를 확인해야 합니다.
    • FontFace를 사용하려면 글꼴의 라이선스를 확인해야 합니다. 글꼴의 라이선스에 따라 사용 범위가 제한될 수 있습니다. 따라서, 글꼴을 사용하기 전에 라이선스를 확인하여 사용 범위를 확인하는 것이 좋습니다.
저작자표시 (새창열림)

'Frontend > Development' 카테고리의 다른 글

내부 요소 스크롤 위치 도달 시 부모 요소 스크롤 방지하기  (0) 2024.05.28
useLoaderData와 useRouteLoaderData의 사용법과 차이점  (2) 2023.12.31
React에서 한글 두 번 입력되는 오류, isComposing로 해결하기  (0) 2023.10.29
React + webpack5 + typescript, 빠르고 쉽게 세팅하기  (0) 2023.10.15
MutationObserver로 클릭 이벤트 감지하기  (0) 2023.09.25
'Frontend/Development' 카테고리의 다른 글
  • 내부 요소 스크롤 위치 도달 시 부모 요소 스크롤 방지하기
  • useLoaderData와 useRouteLoaderData의 사용법과 차이점
  • React에서 한글 두 번 입력되는 오류, isComposing로 해결하기
  • React + webpack5 + typescript, 빠르고 쉽게 세팅하기
끄적끄적 개발자
끄적끄적 개발자
생각나는 대로 끄적끄적, 코드 노트
  • 끄적끄적 개발자
    코딩을 끄적끄적
    끄적끄적 개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • Backend (0)
      • Frontend (39)
        • Development (19)
        • Dev Notes (9)
        • React Hook Form (3)
        • Module Federation (3)
        • Clone coding (5)
      • UIUX (2)
      • ETC (2)
  • 인기 글

  • 태그

    개발/언어
    회고
    개발/정보
    개발/기술
    UI/UX
    개발/코드품질
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
끄적끄적 개발자
FontFace를 활용하여 웹사이트의 글꼴을 동적으로 로딩하기
상단으로

티스토리툴바