랜더링이란 -
서버
로 부터 받은 내용을브라우저
화면에 표시하는 하는 과정을 말합니다.
서버 사이드 렌더링이란 - 사용자에게 보여줄
페이지
를 서버에서 구성한 후 사용 클라이언트(브라우저)로 보낸 후 화면에 표시하는 기법입니다. ex) JSP/Servlet
서버
를 이용해서 페이지를 구성하기 때문에 클라이언트에서 구성하는 CSR(client-side-rendering)보다 페이지를 구성하는 속도는 늦어지지만 전체적으로 사용자에게 보여주는 콘텐츠 구성이 완료되는 시점은 빨라진다는 장점을 가지고 있습니다
SEO(search engine optimization) 검색엔진 최적화
node.js 환경일 경우 랜더링시 컴포넌트 최초 생성 시점은 브라우저가 아닌 Node.js환경이이기에 beforeCreate
나 created
에서 브라우저 객체를 접근할 수 없습니다. 대신 beforeMount
나 mounted
에서 window
와 document
를 접근할 수 있습니다.
서버 렌더링에 따른 부하 발생 가능
페이지 이동시 화면이 깜빡 거림(페이지 요청마다 새로고침 발생)
초기 전송되는 페이지 속도는 빠르지만
서비스에 필요한 데이터를 클라이언트(브라우저)에서 추가로 요청 후 재구성 하기 때문에 전체적으로 페이지 완료시점
은 SSR보다 느려집니다.SPA란 -단일 페이지 애플리케이션으로, 현재 페이지를 동적으로 작성함으로써, 연속되는 페이지 간의 사용자 경험을 향상(Mobile 같은 환경)을 향상 시킵니다.
CSR기반으로 처음 화면을 로딩시 네트워크 환경이 안좋을 경우 사용자가 화면을 보기 전에 상당 시간 하얀 바탕을 봐야 할 수 있습니다.
CSR의 단점을 보완하기위해 등장한것이 바로
Next js
입니다.
Next.js 특징
아직 Next.js를 사용해보지 않아 CSR의 단점보완을 실제로 적용해보지 못했지만 추후에 Next.js를 다뤄 어떤 점을 보완했는지 다뤄볼 예정입니다.
출처