※ Pre Rendering (Next.js 작업방식)
- Next는 초기에 서버단에서 미리 만들어진 page 폴더 안쪽에 있는 정적인 컨텐츠를 html로 미리 Randering 상태에서 초기 로딩 처리 (SEO에 좋음)
- 이후에 동적으로 데이터 연동을 위한 리액트 컴포넌트가 로드 완료 되면 Static한 페이지에 해당 내용을 결합 (Hydration)
- 기존에 리액트는 초기에 모든 서브페이지에 해당하는 파일들을 모두 가져온 다음에 Randering하기 때문에 초기 로딩속도가 늦음
- 초기 메인 페이지만 pre-render된 상태로 가져오고 서브페이지에 해당하는 파일들은 json 형태로만 미리 로드 시켜서 초기에 로드시켜야되는 파일의 갯수와 용량을 줄임
- 다른페이지의 데이터 구분 next 전용의 Link 컴포넌트에 연결되어 있는 라우터명을 통해서 json 형태로 데이터만 미리 로드
※ SSG (Static-Site-Generation)
- Next프로젝트를 빌드시 pre-render
장점 : 미리빌드 시점에 페이지가 완성되기 때문에 초기 로딩속도가 빠름
단점 : 요청 전에 미리 프리렌더되기 때문에 정적인 페이지만 적용 가능
※ SSR (Server Side Randering)
- 서버에 요청이 들어오면 서버단에서 data-fetching후 pre-render
장점 : CSR방식에 비해서는 초기로딩속도가 빠르고 요청시마다 새로운 데이터 갱신 가능
단점 : 서버 호출시에 pre-render 되기 때문에 SSG 방식보다는 느림
※ ISR (Incremental Static Regeneration)
- Next 프로젝트 빌드 시 pre-render
장점
1) SSG와 마찬가지로 빌드시에 미리 페이지가 만들어지기 때문에 초기로딩속도가 빠름
2) 일정시간마다 새롭게 갠신된 데이터로 정기적으로 revalidation 처리
단점
1) 초기에 이동할 떄만 조금 시간이 걸린다. (기존에 있는 SSR보다는 빠름)
'IT > NextJs' 카테고리의 다른 글
[NextJs] Swiper 사용 시 SwiperCore 사용하는 이유 (0) | 2023.08.21 |
---|---|
[NextJs] Atomic Design Pattern 컴포넌트 렌더링 흐름 (0) | 2023.08.18 |
[NextJs] Atomic Design Pattern 정리 (0) | 2023.08.16 |
[NextJs] CSR , SSG , SSR , ISR 예제 (0) | 2023.08.04 |
[NextJs] CSR , SSG , SSR , ISR 이론 정리 (0) | 2023.08.04 |