nesslab이 ssg로 되어져 있음.
<aside> 🧠 Static Rendering(이하 SSG)는 사이트를 빌드할 때 미리 렌더링해 둔 HTML자체를 서빙하여 이런 문제를 해결한다.
</aside>
사용자가 액세스할 수 있는 각 경로에 해당하는 정적 HTML 파일이 미리 생성됩니다. (그냥 html 파일을 던지는 것과 똑같음)
이러한 정적 HTML 파일은 웹 서버나 CDN에서 사용할 수 있으며 클라이언트가 요청할 때 가져올 수 있다.
이렇게 생성된 정적 HTML파일들은 캐시가 가능하므로 유연성을 제공한다.
HTML 응답이 미리 생성되므로 서버의 처리 시간이 미미하므로 TTFB가 더 빨라지고 성능이 향상된다.
이상적으로는 클라이언트 측 자바스크립트가 최소화 되고 페이지를 다운로드 받자 마자 인터렉티브가 가능하게 된다. (따로 하이드레이션 필요 X)
패턴의 이름과 같이 정적 렌더링은 로그인 된 사용자를 위한 UI변경 같은 것이 없는 정적 컨텐츠에 적합하다. 따라서 ‘소개'
, ‘연락처'
, 블로그 페이지
들이나 온라인 커머스 앱의 상품 페이지들은 정적 페이지가 될 수 있다.
Next.js, Gatsby.js, VuePress와 같은 프레임웍들이 정적 컨텐츠 기능을 지원한다. 일단은 데이터가 필요없는 정적 컨텐츠들을 제공하는 페이지를 만들어보자.
// pages/about.js
export default function About() {
return (
<div>
<h1>About Us</h1>
{/* ... */}
</div>
);
}
사이트가 next build
명령을 통해 빌드될 때 이 페이지는 about.html
파일로 프리렌더 되어 /about
경로에 서빙된다.****