사용자 정의 Document는 일반적으로 응용 프로그램 html 및 body 태그를 보강하는데 사용됩니다. Document를 이용하여 title, description, meta 등 프로젝트의 정보를 제공하는 html 코드를 작성할 수 있고, font나 외부 api, cdn 등을 불러오도록 할 수 있습니다.(와우!) 또한 CSS-inJS의 서버 사이드 렌더링을 위한 설정을 할 때 사용합니다.
Document를 사용하여 문서에 메타 데이터와 폰트를 추가해 보도록 하겠습니다.
여기서는 구글 폰트를 활용해 보도록 하겠습니다.
위 링크에서 원하는 폰트의 link 정보를 복사한 뒤 document 파일에서 적용해 봅시다.
> pages/_document.jsx
import Document, { Html, Head, Main, NextScript } from "next/document";
class MyDocument extends Document {
render() {
return (
<Html lang="ko">
<Head>
<meta name="title" content="Github Repositories" />
<meta name="description" content="github repositories list" />
<link
href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700&family=Noto+Sans:wght@400;700&display=swap"
rel="stylesheet"
/>
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
export default MyDocument;
프로젝트의 lang, title, description, font 정보를 추가해주었습니다.
font는 _app.jsx
의 글로벌 css부분에서 적용하면 됩니다.
폰트 적용 후 브라우저에 접속하면 해당 폰트와 document에서 정의한 head 내용이 적용된 것을 확인할 수 있습니다.