최초 로딩 시 브라우저거 서버에 HTML을 비롯한 CSS, JavaScript등 각종 리소스들을 받아오는 방식이다. 각종 리소스들을 받아오면 사용자의 상호작용에 따라 JavaScript를 통해 동적으로 렌더링한다. 이후 필요에 따라 데이터를 서버에 요청해서 받아오게 된다
SSR 방식은 서버에서 렌더링을 마치고, 완전하게 만들어진 HTML 파일을 브라우저로 전달한 후 렌더링하는 방식이다. 새로운 페이지로 이동할 때마다 서버에 페이지를 요청하고 새로고침이 되어 깜빡이는 현상이 발생한다.
React에서 CSR의 단점을 극복하기 위해 React SSR 라이브러리인 Next.js를 사용한다고 한다. Next.js는 리액트의 프레임워크로, 리액트 기반으로 작성된 페이지를 SSR 형태로 편리하게 제공할 수 있도록 해준다.
프로젝트의 성격에 따라 사용자의 인터렉션이 많아 동적으로 화면을 매번 렌더링 해줄 필요가 없다면 SSR을, 부드러운 렌더링이 필요하고 부분적인 업데이트가 잦다면 CSR이 유리할 수도 있습니다.
The Benefits of Server Side Rendering Over Client Side Rendering
CSR vs SSR (feat. Next.js)
SSR과 CSR의 차이