Published on

SPA vs CSR vs SSR

Authors
  • avatar
    Name
    Hyo814
    Twitter

싱글 페이지 애플리케이션 (SPA)

개요

싱글 페이지 애플리케이션(SPA)은 하나의 HTML 페이지를 로드하고 사용자가 앱과 상호작용할 때 동적으로 콘텐츠를 업데이트하는 웹 애플리케이션입니다. SPA는 주로 클라이언트 사이드에서 JavaScript를 사용하여 콘텐츠를 렌더링합니다.

장점

  • 향상된 사용자 경험: 페이지의 일부만 업데이트되므로 빠른 탐색을 제공하여 원활한 경험을 제공합니다.
  • 서버 부하 감소: 서버와 클라이언트 간에 전송되는 데이터가 적어 서버 부하가 줄어듭니다.
  • 풍부한 상호작용성: SPA는 더 동적이고 상호작용적인 사용자 인터페이스를 제공합니다.

단점

  • SEO 문제: SPA는 동적으로 콘텐츠를 렌더링하기 때문에 검색 엔진 최적화(SEO)가 어렵습니다.
  • 초기 로드 시간: 애플리케이션 전체를 다운로드해야 하므로 초기 로드 시간이 길어질 수 있습니다.
  • JavaScript 의존성: 사용자가 JavaScript를 비활성화한 경우 문제가 발생할 수 있습니다.

공식 문서

React SPA 공식 문서

클라이언트 사이드 렌더링 (CSR)

개요

클라이언트 사이드 렌더링(CSR)은 브라우저에서 직접 웹 페이지를 렌더링하는 방식입니다. 서버는 기본 HTML 문서를 보내고 클라이언트가 JavaScript를 사용하여 콘텐츠를 채웁니다.

장점

  • 향상된 사용자 경험: SPA와 마찬가지로 CSR은 더 반응적이고 상호작용적인 사용자 경험을 제공합니다.
  • 효율적인 업데이트: 전체 페이지를 다시 로드하지 않고 동적으로 업데이트됩니다.
  • 서버 부하 감소: 렌더링이 클라이언트에서 발생하므로 서버의 처리 부담이 줄어듭니다.

단점

  • SEO 문제: SPA와 마찬가지로 CSR은 동적으로 렌더링된 콘텐츠를 검색 엔진이 인덱싱하기 어려울 수 있습니다.
  • JavaScript 의존성: 애플리케이션이 JavaScript에 의존하므로 JavaScript가 비활성화되거나 로드에 실패할 경우 문제가 발생할 수 있습니다.
  • 초기 로드 시간: 클라이언트가 페이지를 렌더링하기 위해 JavaScript를 다운로드하고 실행해야 하므로 초기 로드가 느릴 수 있습니다.

공식 문서

React CSR 공식 문서

서버 사이드 렌더링 (SSR)

개요

서버 사이드 렌더링(SSR)은 웹 페이지를 클라이언트에 보내기 전에 서버에서 렌더링하는 방식입니다. 이 접근 방식은 각 요청에 대해 서버에서 전체 HTML 페이지를 생성하여 클라이언트에 보냅니다.

장점

  • SEO 친화적: 콘텐츠가 서버에서 렌더링되므로 검색 엔진에 완전히 노출되어 SEO가 개선됩니다.
  • 빠른 초기 로드: HTML이 서버에서 완전히 렌더링되므로 초기 페이지 로드가 빠릅니다.
  • 저성능 장치에서의 성능: 렌더링 부담을 클라이언트에서 서버로 오프로드하므로 제한된 처리 능력을 가진 장치에서 성능이 향상됩니다.

단점

  • 서버 부하 증가: 각 요청에 대해 서버에서 HTML을 렌더링해야 하므로 서버 부하가 증가할 수 있습니다.
  • 느린 탐색: 전체 페이지를 다시 로드해야 하므로 탐색 속도가 SPA보다 느릴 수 있습니다.
  • 복잡성 증가: SSR을 구현하려면 추가 인프라와 더 복잡한 설정이 필요할 수 있습니다.

공식 문서

Next.js SSR 공식 문서

비교표

특징SPACSRSSR
렌더링 위치클라이언트클라이언트서버
초기 로드 시간느림느림빠름
후속 로드 시간빠름빠름느림
SEO어려움어려움쉬움
서버 부하낮음낮음높음
상호작용성높음높음중간
구현 복잡성중간중간높음

결론

각 렌더링 전략(SPA, CSR, SSR)은 고유한 강점과 약점을 가지고 있습니다. 선택은 프로젝트의 특정 요구 사항, 예를 들어 SEO 필요성, 성능 고려 사항 및 원하는 사용자 경험에 따라 달라집니다. 이러한 차이점을 이해하면 개발자는 애플리케이션에 적합한 접근 방식을 선택할 수 있습니다.

자세한 내용은 React 공식 문서를 참조하세요.