참치코더의 꿈 메모장

Next.js / SSG(Static Site Generation) 미니 정리 본문

Next.js

Next.js / SSG(Static Site Generation) 미니 정리

참치깡 2025. 11. 7. 23:37
728x90

제미나이로 생성한 Next.js 이미지

 

 

SSG(Static Site Generation)

 

1. Next.js가 getStaticProps()를 실행해서 데이터를 가져온다.

 

2. 그 데이터를 이용해 빌드 시점에 HTML 파일을 미리 만들어 둔다.

 

3. 사용자가 /page 같은 URL로 접속하면 Next.js가 이미 만들어둔 정적 HTML을 그대로 제공한다.

 

4. 브라우저는 React를 Hydration 해서 동적 기능이 작동하게 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// pages/book/[id].tsx
export const getStaticPaths = async () => {
  const res = await fetch("https://example.com/api/books");
  const books = await res.json();
 
  const paths = books.map((b) => ({
    params: { id: b.id.toString() },
  }));
 
  return { paths, fallback: true };
};
 
export const getStaticProps = async (context) => {
  const id = context.params!.id;
  const res = await fetch(`https://example.com/api/book/${id}`);
  const book = await res.json();
 
  if (!book) return { notFound: true };
 
  return {
    props: { book },
  };
};
 
cs

 

- getStaticPaths() -> 동적 경로를 사용할때 어떤 경로를 미리 생성할지 정하는 메서드

 

fallback 옵션

 

- false -> 지정한 path만 생성한다. 나머지는 404 오류가 난다.

- true -> 지정된 path외의 요청은 일단 로딩 페이지 보여줄때, 서버와 통신해서 데이터를 보여준다.

- 'blocking' -> 없는 페이지는 SSR과 동일한 방식으로 데이터를 가져온다. (로딩 페이지 생성 X)

 

결론

- SSR과 SSG 둘다 중요한 방법이고, 각각 상황에 따라 동적으로 좋은 해결법을 적용하면 된다.

 

 

 

728x90
Comments