728x90
728x90
1. CSR (Client-Side Rendering)
정의
- 렌더링이 클라이언트(브라우저)에서 이루어지는 방식.
- 서버는 빈 HTML 파일과 필요한 JavaScript 파일을 전달하고, 브라우저가 JavaScript를 실행하여 DOM을 생성하고 콘텐츠를 렌더링합니다.
작동 방식
- 서버에서 초기 HTML 파일을 전송.
- 브라우저가 HTML 파일을 파싱하고, JavaScript 파일을 요청하여 다운로드 및 실행.
- JavaScript가 실행되며 DOM이 생성되고, 최종적으로 화면에 콘텐츠가 표시.
특징
- SPA(Single Page Application)에서 주로 사용.
- React, Vue.js, Angular와 같은 프론트엔드 프레임워크에서 일반적으로 CSR 방식을 사용.
장점
- 인터랙티브한 사용자 경험:
- 페이지 간 전환이 빠르고 부드러움(클라이언트에서 처리).
- 초기 로딩 이후 빠른 속도:
- 필요한 부분만 업데이트되므로 효율적.
- 백엔드 부담 감소:
- 서버는 데이터를 제공만 하면 되고, 렌더링은 클라이언트에서 수행.
단점
- SEO에 불리:
- 초기 HTML은 비어 있고, JavaScript 실행 후 콘텐츠가 생성되므로, 일부 검색 엔진에서 제대로 크롤링되지 않을 수 있음.
- 초기 로딩 시간 증가:
- 브라우저가 JavaScript를 다운로드하고 실행하는 데 시간이 소요.
- JS 비활성화 시 기능 제한:
- JavaScript가 비활성화된 환경에서는 애플리케이션이 작동하지 않을 수 있음.
2. SSR (Server-Side Rendering)
정의
- 렌더링이 서버에서 이루어지는 방식.
- 서버가 완전히 렌더링된 HTML을 클라이언트로 전송하며, 클라이언트는 이를 브라우저에 표시합니다.
작동 방식
- 클라이언트가 서버에 요청을 전송.
- 서버가 요청을 처리하고, HTML을 렌더링하여 클라이언트에 반환.
- 브라우저가 HTML을 렌더링하고 사용자에게 콘텐츠를 표시.
특징
- 전통적인 웹 애플리케이션 방식이며, 현대 프레임워크에서도 지원 가능(Next.js, Nuxt.js).
장점
- SEO 친화적:
- 완전히 렌더링된 HTML이 검색 엔진에 바로 전달되므로 크롤링 및 색인에 유리.
- 빠른 초기 렌더링:
- 콘텐츠가 서버에서 렌더링되므로 사용자는 빠르게 콘텐츠를 볼 수 있음.
- JavaScript 비활성화 대응 가능:
- 브라우저에서 JavaScript가 꺼져 있어도 기본 HTML이 표시됨.
단점
- 서버 부담 증가:
- 모든 요청에 대해 서버에서 HTML을 생성해야 하므로 부하가 증가.
- 상호작용 속도 감소:
- 새로운 페이지 요청 시마다 전체 HTML을 서버에서 다시 받아야 하므로 느릴 수 있음.
- 복잡한 구현:
- 초기 설정과 데이터 동기화가 복잡해질 수 있음.
CSR과 SSR의 비교
| 특징 | CSR (Client-Side Rendering) | SSR (Server-Side Rendering) |
| 초기 로딩 시간 | 느림 (JS 다운로드 및 실행 필요) | 빠름 (HTML 바로 표시 가능) |
| SEO | 낮음 (JS 실행 후 렌더링) | 높음 (완전한 HTML 제공) |
| 사용자 경험 | 빠르고 부드러운 페이지 전환 | 페이지 전환 시 느릴 수 있음 |
| 서버 부하 | 낮음 | 높음 |
| 구현 복잡성 | 비교적 간단 | 복잡할 수 있음 |
| JavaScript 의존성 | 필수 | 필요 없음 (기본 콘텐츠 표시 가능) |
3. 하이브리드 렌더링
현대 웹 애플리케이션에서는 CSR과 SSR의 장점을 결합한 하이브리드 접근이 많이 사용됩니다.
예시
- Next.js:
- 일부 페이지는 SSR, 나머지는 CSR로 처리.
- getServerSideProps, getStaticProps 등을 통해 필요한 데이터만 서버에서 처리.
장점
- SEO가 중요한 페이지는 SSR로 처리.
- 비중요한 부분은 CSR로 처리하여 성능 최적화.
언제 CSR을 사용해야 할까?
- 애플리케이션 형태의 웹사이트 (e.g., 대시보드, 실시간 채팅).
- SEO가 덜 중요한 경우.
- 사용자와의 빠른 상호작용이 필요한 경우.
언제 SSR을 사용해야 할까?
- SEO가 중요한 콘텐츠 기반 웹사이트 (e.g., 블로그, 전자 상거래).
- 초기 로딩 속도가 중요한 경우.
- 검색 엔진 크롤링이 필수적인 경우.
CSR과 SSR의 적절한 선택 및 결합은 웹 애플리케이션의 성공적인 성능과 사용자 경험 제공의 핵심입니다. 😊
728x90
728x90
'취준 > CS 기술면접 준비' 카테고리의 다른 글
| Virtual DOM 개념 (2) | 2025.01.05 |
|---|---|
| SPA(Single Page Application) (2) | 2025.01.05 |
| DOM(Document Object Model)이란? (2) | 2025.01.05 |
| 웹 표준(Web Standards)이란? (1) | 2025.01.05 |
| SEO(Search Engine Optimization, 검색 엔진 최적화)란? (2) | 2025.01.05 |
댓글