SSR, SSG, CSR 비교 및 장단점

러블리소피·2025년 1월 1일

웹 렌더링

목록 보기
1/2

웹 개발에서 SSR, SSG, CSR은 각각 다른 렌더링 방식으로, 사용자 경험과 성능에 큰 영향을 미칩니다. 각 방식의 정의와 장단점을 알아보겠습니다.

1. SSR (Server-Side Rendering)

정의
서버에서 HTML을 렌더링한 후 클라이언트로 전달하는 방식입니다. 사용자가 요청을 보낼 때마다 서버에서 HTML 파일을 생성하여 반환합니다. 이는 주로 전통적인 웹 애플리케이션에서 사용됩니다.

작동 방식

  • 클라이언트가 서버에 요청을 보냅니다.

  • 서버가 요청에 따라 필요한 데이터를 데이터베이스에서 조회합니다.

  • 서버에서 데이터를 바탕으로 HTML을 생성하고 클라이언트에 반환합니다.

  • 클라이언트는 받은 HTML을 브라우저에 렌더링합니다.

장점

  • SEO 최적화: 서버에서 렌더링된 HTML이 바로 전달되므로 검색 엔진 크롤러가 쉽게 접근 가능.

  • 빠른 초기 로드: HTML이 즉시 로드되므로 첫 화면 렌더링이 빠름.

  • 실시간 데이터 처리 용이: 요청마다 새로운 데이터를 렌더링하여 최신 데이터를 제공 가능.

단점

  • 높은 서버 부하: 요청마다 렌더링을 수행하므로 트래픽이 많을 경우 서버 부담 증가.

  • 느린 페이지 전환: 페이지 전환 시마다 전체 HTML을 다시 요청해야 하므로 느려질 수 있음.

  • 복잡한 서버 설정 필요: 서버 측에서 렌더링 환경을 설정해야 함.

2. SSG (Static Site Generation)

정의
빌드 시 HTML을 미리 생성하여 정적 파일로 저장하고, 사용자가 요청할 때 이를 전달하는 방식입니다. JAMstack 아키텍처에서 자주 사용됩니다.

작동 방식

  • 개발자가 빌드 프로세스를 실행합니다.

  • 데이터와 템플릿을 결합하여 HTML 파일을 생성합니다.

  • 생성된 정적 HTML 파일을 CDN에 배포합니다.

  • 클라이언트 요청 시 CDN에서 즉시 HTML을 반환합니다.

장점

  • 빠른 성능: 정적 파일은 서버 부하 없이 빠르게 전달 가능.

  • SEO 최적화: SSR과 유사하게 HTML이 미리 렌더링되어 제공됨.

  • 저렴한 유지 비용: 서버 리소스를 적게 사용하며, CDN을 활용하면 비용 절감 가능.

단점

  • 동적 데이터 처리의 어려움: 데이터가 자주 변경되는 페이지에는 적합하지 않음.

  • 긴 빌드 시간: 페이지가 많아질수록 빌드 시간이 증가.

  • 재배포 필요: 콘텐츠 변경 시 빌드 후 다시 배포해야 함.

3. CSR (Client-Side Rendering)

정의
초기에는 최소한의 HTML과 JavaScript만 전달하고, 클라이언트 측에서 JavaScript로 렌더링을 수행하는 방식입니다. 주로 SPA(Single Page Application)에서 사용됩니다.

작동 방식

  • 클라이언트가 최소한의 HTML과 JavaScript 파일을 서버로부터 받습니다.

  • 클라이언트 측에서 JavaScript가 실행되며 필요한 데이터를 API를 통해 가져옵니다.

  • 가져온 데이터로 DOM을 구성하고 화면을 렌더링합니다.

  • 이후 페이지 전환은 클라이언트 측에서만 이루어집니다.

장점

  • 빠른 페이지 전환: 클라이언트에서 렌더링하므로, API 요청으로 필요한 데이터만 가져와 페이지 전환 속도가 빠름.

  • 풍부한 인터랙션: 클라이언트 측에서 다양한 동적 기능 구현 가능.

  • 서버 부하 감소: 서버에서 렌더링하지 않으므로 부하가 적음.

단점

  • SEO 문제: 초기 HTML에 콘텐츠가 없으므로 검색 엔진 크롤러가 데이터를 인식하지 못할 수 있음.

  • 느린 초기 로드: JavaScript 로드 및 실행 시간이 필요.

  • JavaScript 의존성: JavaScript가 비활성화된 환경에서는 작동하지 않음.

SSR, SSG, CSR 비교 표

결론

  • SSR: SEO가 중요한 실시간 데이터 페이지에 적합.

  • SSG: 블로그, 문서 사이트처럼 정적 콘텐츠가 많은 페이지에 적합.

  • CSR: 대화형 웹 애플리케이션, SPA(Single Page Application)에 적합.

프로젝트의 요구 사항과 특성에 맞는 렌더링 방식을 선택하는 것이 중요합니다.

profile
발전하는 개발자가 되고싶어요

0개의 댓글