NextJS 공부 전, React 와 어떻게 다른건지 궁금하여 공부하기로 한당. 빠샤.
자바스크립트 "라이브러리"의 하나로서 사용자 인터페이스를 만들기 위해 사용된다.
NextJS는 React로 만드는 서버 사이드 렌더링(SSR) "프레임워크"
CSR
은 프론트에서(클라이언트), SSR
은 백에서(서버)에서 화면이 구성된다.CSR
은 Client-Side-Rendering 을 말한다.
CSR
은 클라이언트 사이드에서 HTML을 반환한 후에,
JavaScript 가 동작하면서 데이터만을 주고 받아서 클라이언트에서 렌더링을 진행하는 방식이다.
동작방식은 아래와 같다.
이렇다보니 사용자는 렌더링이 완료될 때 까지 빈 화면을 보면서 대기해야한다는 단점이 있다.
이외의 단점으로는
SSR
은 Server-Side-Rendering 을 말한다.
서버에서 렌더링을 작업하는 렌더링 방식이다.
사용자가 웹 페이지에 접근할 때, 서버에 각각의 페이지에 대한 요청을 하며 서버에서 html, js 파일 등을 다 다운로드해서 화면에 렌더링하는 방식이다.
동작방식은 아래와 같다.
hydration
이라 한다.hydration
즉, 서버에서 UI 를 모두 구성한 다음 유저에게 응답해 화면을 보여주는 방식이다보니,
유저는 인터넷 속도에 상관없이 화면에 뭔가 나오는 것을 볼 수 있다.
HTML 파일에 모든 정보가 포함되어있기에, SEO 에도 좋고 초기 로딩속도가 빠르다.
단점으로는, 서버에 매번 요청하기 때문에 서버 부하가 크다는 점이다.
꼭 Next 를 쓰지 않아도, 리액트 앱으로 만든 앱을 ssr 로 렌더링시키는 라이브러리들도 존재한다고 한다. 추가적인 작업만 해주면 된다고하니 그것도 알아보도록 해야겠다 :)