[프론트엔드] SSR과 CSR 그리고 SSG

임승민·2023년 2월 16일
0

프론트엔드

목록 보기
1/3
post-thumbnail

브라우저 렌더링 방식에는 크게 SSR과 CSR이 있다. 두 방식의 과정과 장단점 그리고 SSG를 간단히 알아보자!


SSR (Server Side Rendering)

💡 SSR은 서버에서 완성된 HTML 파일을 클라이언트에게 전달하는 방식이다.
TTV != TTI (페이지를 볼 수 있는 시점) != (페이지와 상호작용할 수 있는 시점)

SSR 과정

  1. 사이트 접속 시 클라이언트가 서버에게 데이터 요청.
  2. 서버에서 바로 렌더링 가능한 HTML파일을 완성해 클라이언트에게 전달.
  3. 사이트가 화면에 바로 표시. (JS파일 다운 전으로 화면만 보일 뿐 조작 불가)
  4. JS파일이 다운되고 사이트 조작이 가능하다. (JS파일 다운 전 조작한 내용을 기억하고 동작)

장단점

장점

  • 사용자에게 보다 빨리 첫 페이지를 보여줄 수 있다.
  • HTML파일로 받기 때문에 효율적 SEO가 가능하다.

단점

  • JS파일 다운 전 사이트 조작이 불가능하다.
  • 페이지 이동, 조작 시 서버에서 페이지를 다시 받아와서 깜빡임 현상이 발생한다. (나쁜 UX😡)
  • 조작 시 페이지를 다시 받아와서 서버 부하를 줄 수 있다.

CSR (Client Side Rendering)

💡 CSR은 클라이언트가 서버에게 HTML, JS 파일을 받아 렌더링 하는 방식이다.
TTV == TTI

CSR 과정

  1. 사이트 접속 시 클라이언트가 서버에 요청을 보낸다.
  2. CDN이 JS, CSS링크만 있는 빈 HTML파일를 클라이언트에게 보낸다. (HTML파일에 내용이 없어서 빈 화면 표시)
  3. 클라이언트는 JS링크를 통해 JS 파일을 다운받는다. (JS안에는 로직, 라이브러리, 프레임워크 소스코드)
  4. JS가 실행되며 동적으로 HTML을 생성해 화면에 표시한다.
  5. 이 후 필요에 따라 서버에 데이터를 받아 부분 업데이트를 한다.

장단점

장점

  • 초기 로딩 이후 구동 속도가 빠르다.
  • 서버는 빈 HTML만 넘기면 되기에 서버 부하를 줄일 수 있다.
  • 사이트 조작 시 서버에 필요한 데이터만 요청해서 빠르고 깜빡임이 없다.

단점

  • 브라우저가 JS 파일을 다운받아 DOM을 생성하기에 초기 로딩이 느리다.
  • HTML 파일이 비어있어서 검색엔진이 파악하기 힘들어 SEO에 취약하다.

SSG (Static Site Generation)

💡 SSG는 빌드시 HTML 파일을 미리 생성하는 하는 방식이다.
Next.js에서 권장하는 방식

빌드시 HTML 파일을 미리 생성해서 클라이언트 요청시 즉시 페이지를 제공한다. 즉, 페이지 요청시 재생성하지 않고 만들어진 페이지를 제공한다.

장점

  • 생성된 HTML 문서를 재활용 해서 CSR보다 응답속도가 빠르다.
  • 이미 생성된 HTML 파일을 받기 때문에 효율적 SEO가 가능하다.

단점

  • 모든 URL의 개별 HTML 파일을 생성해야 한다. URL을 미리 예측할 수 없으면 적용이 어렵다.

추천

  • 정적 생성된 정보를 각 요청에 동일한 정보로 반환하는 경우 (마케팅 페이지, 블로그 게시물, 제품의 목록)

0개의 댓글