[Vue] SPA, CSR, SSR, SEO

작성:    

업데이트:

카테고리:

태그: ,

FE 개발

  • HTML, CSS, JS를 활용해 데이터를 볼 수 있게 만들어 줌
  • 사용자는 데이터와 상호작용(Interaction) 가능


SPA

SPA란?

  • Single Page Application(단일 페이지 어플리케이션)
  • 최초에만 페이지를 서버로부터 다운로드, 이후 동적으로 DOM 구성
  • 처음 페이지를 받은 이후 서버로부터 새로운 전체 페이지를 불러오는 것이 아닌, 필요한 부분만 현재 페이지에서 동적으로 재작성
  • 연속되는 페이지 간의 사용자 경험(UX) 향상
  • 트래픽의 감소와 속도, 사용성, 반응성의 향상은 매우 중요
  • 동작 원리의 일부가 CSR(Client Side Rendering) 구조를 따름


SPA의 등장 배경

  • 과거 : MPA(Multi Page Application)
  • 요청에 따라 매번 새로운 페이지 응답
  • 스마트폰의 등장으로 모바일 최적화의 필요성 대두
  • 모바일 네이티브 앱과 같은 형태의 웹페이지 필요
  • CSR, SPA의 등장으로 1개의 웹 페이지에서 여러 동작이 이루어져 모바일 앱과 비슷한 UX 제공


CSR

CSR이란?

  • Client Side Rendering
  • 클라언트에서 화면 구성
  • 최초 요청 시 HTML, CSS, JS 등 데이터를 제외한 각종 리소르를 응답
  • 이후 클라이언트에서는 필요한 데이터만 요청해 JS로 DOM을 렌더링
  • 뼈대만 받고 브라우저에서 동적으로 DOM 구성


CSR의 장점

  • 서버-클라이언트 트래픽 감소 : 웹 App에 필요한 정적 리소스를 최초 한 번 다운로드, 이후 필요한 데이터만 갱신
  • UX 향상 : 전체 페이지 rerender 없이 변경되는 부분만 갱신


CSR의 단점

  • SSR에 비해 전체 페이지 최종 렌더링 시점이 느림
  • SEO에 어려움(최초 문서에 데이터 마크업이 없기 때문)


SSR

SSR이란?

  • Server Side Rendering
  • 서버에서 클라이언트에게 보여줄 페이지를 모두 구성하여 전달
  • JS 웹 프레임워크 이전에 사용되던 전통적 렌더링 방식


SSR의 장점

  • 초기 구동 속도가 빨라 클라이언트가 빠르게 컨텐츠 확인 가능
  • SEO에 적합 → DOM에 이미 모든 데이터가 작성


SSR의 단점

  • 모든 요청마다 새로운 페이지를 구성하여 전달
  • 반복되는 전체 새로고침으로 UX 저하
  • 상대적으로 트래픽이 많아 서버 부담 가중


CSR과 SSR의 선택

  • 두 방식의 차이는 최종 HTML 생성 주체가 누구인가에 따라 결정
  • 실제 렌더링 HTML을 서버가 만든다면 SSR, 클라이언트가 만든다면 CSR

  • SSR과 CSR 중 단순히 어떤 것이 우위인 것이 아니라, 내 서비스 또는 프로젝트 구성에 맞는 방법을 적절히 선택하는 것이 중요


SEO

SEO란?

  • Search Engine Optimization (검색 엔진 최적화)
  • 웹 페이지 검색엔진이 자료를 수집하고 순위를 매기는 방식에 맞게 웹 페이지를 구성해서 검색 결과의 상위에 노출될 수 있도록 하는 작업
  • 구글의 등장 이후 검색엔진들이 컨텐츠의 신뢰도를 파악하는 기초 지표로 사용
  • 다른 웹 사이트에서 얼마나 인용되었는지 반영
  • 타 사이트에 인용되는 횟수를 늘리는 방향으로 최적화


SEO 대응

  • SPA 프레임워크는 SSR을 지원하는 SEO 대응 기술 존재 → SEO 대응이 필요한 페이지에 대해 선별적 SEO 대응 가능

  • 별도의 프레임워크 사용
  • Nuxt.js : Vue.js의 SSR 지원
  • Next.js : React의 SSR 지원

댓글남기기