• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

getStaticPaths 질문

23.07.16 23:31 작성 조회수 359

1

1. fallback:true인 경우 npm run build 할때 정적 페이지를 생성하는게 아니라

외부사용자가 접근한 시점에 생성을해서 보여준다는 것인가요?

맞다면 npm build 시점에는 생성을 하나도 안한다는 건가요?

2. fallback: false인 경우 npm run build 시에 getStaticPaths 에서

return한 path에 대한 페이지만 생성하는게 맞나요?

3. getStaticProps 안에서 fallback에 대한 처리는 fallback:true인 경우에만 처리하는거죠?

(return { notFound: true } 같은것)

4. getStaticPaths는 path에 따른 페이지를 생성시켜주는 함수이니 동적 라우팅에만 사용하는 함수인가요?

5. 데이터가 자주 바뀌는 페이지도 이러한 방식을 적용가능한것 같은데 초기 페이지에 대해서

SSR과 SSG 중 하나의 선택지로 골라서 적용을 해야할것 같네요. 어떤것을 선택해야 하는지는

직접 성능을 측정해가면서 비교하는게 정확한가요? 아니면 강좌에서 말씀하신것 처럼 웬만하면 SSR를 지양하고

SSG를 적용하는쪽으로 가는게 좋은건가요? CSR, SSR, SSG 적용을 하는 판단기준이 잘 안서네요.

답변 1

답변을 작성해보세요.

1

안녕하세요.

  1. fallback이 true인 경우에도 getStaticPaths에 선언한 paths 들은 build 시점에 pre-rendering 합니다(생성을 하나도 하지 않는 것이 아님). 이 때 fallback이 true라면, build 시점엔 없는 페이지였을지라도 사용자 접근 시점에 페이지를 새로 만들 수 있습니다. (false라면 404 노출)

  2. 맞습니다. 위의 설명과 같이 fallback 값에 상관없이 build 시점에 getStaticPaths의 paths에 해당하는 페이지를 생성합니다.

  3. fallback이 true 이거나 blocking일 때 처리합니다. blocking 에 대해서는 해당 강의 10분쯤부터 다시 보시면 도움이 될 것 같습니다.

  4. 맞습니다.

  5. 이 경우 정답이 없기 때문에 상황에 따라 판단해야합니다. 일반적으로 데이터의 정합성보다 사용자 경험과 성능이 중요할 경우 SSG의 이점을 살리는게 좋을 것입니다. 반대로 데이터의 정합성(+보안)이 중요한 경우(돈과 같이 중요한 데이터를 다루는 경우)엔 SSR을 사용해야할 것입니다. 하지만 이 역시 보안 방식이나 프로젝트 상황에 따라 CSR을 사용할수도 있기 때문에 정답은 없습니다.

질문들 감사합니다! :)