웹 애플리케이션은 크게 클라이언트 사이드 렌더링(이하 CSR)과 서버 사이드 렌더링(이하 SSR)로 나눌 수 있습니다. 이번 포스트에서는 이 둘의 차이는 무엇인지 장단점은 무엇인지 알아보겠습니다.
클라이언트 사이드 렌더링에서는 DOM 요소를 동적으로 구성할 수 있는 자바스크립트 파일을 서버 측에서 전송합니다. 클라이언트는 서버 측에서 받아온 자바스크립트를 실행해 사용자가 정보를 요청할 때마다 동적으로 HTML 페이지를 생생해 렌더링합니다.
클라이언트 사이드 렌더링은 싱글 페이지 애플리케이션(SPA) 방식의 웹페이지에서 널리 쓰입니다. CSR 방식에는 다음과 같은 이점이 있습니다.
그러나 첫 로딩 시 자바스크립트 번들링 파일을 모두 다운로드해야 하므로 첫 로딩 속도가 느릴 수 있고, 대부분의 검색 엔진이 자바스크립트 파일을 읽을 수 없어 SEO(검색 엔진 최적화)에 불리합니다.
서버 사이드 렌더링에서는 서버 측에서 완성된 정적 HTML 페이지를 전송합니다. 클라이언트에서 HTTP 요청을 보낼 때 서버에서 HTML 페이지를 생성하여 클라이언트에 전송합니다. SPA에서 서버 사이드 렌더링을 사용하면 다음과 같은 장점이 있습니다.
Next.js 프로젝트를 세팅한 뒤 yarn start 스크립트를 실행했을 때 실행되는 코드를 nextjs github 레포지토리에서 찾은 뒤, 해당 파일에 대한 간단한 설명을 첨부해주세요.
Next.js 코드 분석은 다음 과제를 수행하면서 보완할 예정입니다.
신세한탄의 CSR&SSR
알아보자 CSR, SSR
React.js 개발자를 위한 SSR 앱 개발 및 배포하기
SSR, SSG, JAM Stack이 뭔가요? (+ CSR, SEO, Next.js, Nuxt.js, Gatsby)