Next.js 이론

JunpyoAhn·2023년 12월 23일
1
post-thumbnail
post-custom-banner

Next.js 특징

  • 복잡한 설정없이 편하게 사용 가능.
  • 자바스크립트만으로 프론트&백앤드 전부 사용이 가능.
  • 코드스플릿트 기능: 사용자가 필요한 컴포넌트 부분만 로딩하여 로딩시간 최적화.
  • data fetching 주기를 마음대로 설정 가능
  • pre-rendering(사전 렌더링)을 해준다.

렌더링 기법

CSR(Client Side Rendering)

  • 순수 리엑트를 사용하였을 때 사용된다.
  • 렌더링의 주체는 브라우저이다.
  • 브라우저에서 자바스트립트를 이용하여 동적으로 페이지를 렌더링 하는 기법

장점
1. 사용자와의 상호작용이 빠르고 부드럽다.
2. 서버에 추가적인 요청이 없기 때문에 사용자 경험이 좋다.
3. 서버의 부하가 적음.

단점
1. 첫 로딩시간이 길다.
2. 자바스크립트가 로딩되고 실행될때 까지 페이지가 비어있다, 리엑트의 단점인 초기렌더링이 느린점과 동일.
3. 불필요한 렌더링이 반복 될 수 있다.

SSG(Static Site Generation)

  • 모든 페이지에서의 렌더링을 서버에서 수행하는 방식.

장점

  • 초기 로딩속도 향상
  • SEO 최적화
  • 동적 페이지 지원

단점

  • 정적인 페이지에만 사용가능
  • 사용자와의 상호작용을 서버와의 통신에 의존하여 상호작용이 느리다.
  • 서버 부하가 클 수 있다.

ISR(Incremental Static Regeneration)

특징

  • 일정한 주기마다 갱신되는 것 revalidate 사용하여 설정
  • 설정한 주기만큼 페이지를 게속 생성해준다.
  • 정적 페이지를 먼저 보여주고 필요에 따라 페이지를 재생성
  • 실시간 데이터는 아니다.
  • 마이페이지처럼 데이터에 의존하여 화면을 그려주는 경우는 사용 불가.
  • 은행에서 주로 사용
  • 동적인 컨텐츠는 다루지만 실시간 페이지는 아니다.

SSR(Server-Side Rendering)

특징

  • 유저가 페이지르 요청할 때마다 HTML 문서가 생성됨
    => 매 요청마다 서버에 의해 호출되는 getServerSideProps, getStaticProps, getStaticPaths 함수를 사용
  • 동적으로 페이지를 생성해준다.
  • 로딩 속도가 빠르고 보안성이 높다.
  • SEO 최적화에 좋다.
    -마이페이지처럼 데이터에 의존한 페이지 구성이 가능

단점

  • 요청할 때마다 전체사이트를 다시 빌드해야해서 시간이 오래걸림
  • 서버의 과부화가 있을 수 있다.

하이드레이션

  • 껍데기만 있는 HTML을 react 같은 동적인 요소가 더해져서 채워지는 것
post-custom-banner

0개의 댓글