서버 사이드 렌더링(SSR), 동적 라우팅 등을 아주 손쉽게 사용할 수 있도록 해주는 강력한 리액트 프레임워크이다.
기본적으로 SPA 는 클라이언트 사이드 렌더링
방식으로 구현되고 있다. CSR로 구현된 페이지는 html 만 보았을 때는 요소들이 비워져 있으며 사이트에 사용자가 접속해서, 자바스크립트가 실행되는 순간 요소들이 채워지기 시작한다. 그래서 요소들을 그리는 주체가 클라이언트라는 점에서 클라이언트 사이드 렌더링이라고 말한다.
단점
서버 사이드 렌더링은 말그대로 요소들을 그리는 주체가 서버
가 되는 것이다.
사용자가 사이트에 접속하는 순간, 서버 (HTML 을 공급하는 서버)는 HTML 에다가 요소들을 그리고, 요소들이 그려진 HTML 파일과 함께 필요한 자바스크립트 코드를 사용자에게 보낸다. 그러면 사용자가 받는 파일은 빈 파일이 아니라, 요소들이 채워져있는 HTML 파일이 된다. 다만 요소들이 그려져 있다고 해서 실제로 사용자와의 인터렉션 (클릭 등) 이 가능한 것은 아니다.
장점
단점
Next.js
의 핵심적인 기능 중 하나로 Static Generation
이란 특정 페이지의 HTML을 빌드할 때
미리 그려놓는 것을 말한다. 즉, 사용자가 사이트에 접속할 때마다 서버가 직접 HTML을 그리는 것이 아니라, 미리 그려놓은 채로 해당 HTML을 저장해놓고, 사용자가 사이트에 접속하면 저장해놓은 HTML을 공급하는 것이다.
Next.js 는 컴포넌트가 따로 외부에서 데이터를 가져오지 않는 한, 항상 static generation 방식으로 사전 렌더링을 진행한다. (따로 설정을 해주면, 외부에서 데이터를 가져오더라도 static generation 방식으로 렌더링해줄 수 있다.)
단점
잘 봤습니다. 좋은 글 감사합니다.