2025. 2. 7. 16:09ㆍDevlog
웹 개발을 하다 보면 "SSR(Server-Side Rendering)"과 "CSR(Client-Side Rendering)"이라는 개념을 자주 접하게 된다. 두 방식 모두 웹페이지를 렌더링하는 방법이지만, 각각의 장단점이 명확하게 다르다.
이번 글에서는 SSR과 CSR의 차이를 비교하면서, 언제 어떤 방식을 선택해야 하는지 알아보겠다.
1. SSR(Server-Side Rendering)이란?
SSR은 말 그대로 "서버에서 렌더링하는 방식"이다. 사용자가 웹사이트에 접속하면,
서버에서 HTML을 완전히 구성한 후 이를 브라우저로 전송하는 방식이다. 즉, 사용자가 페이지를 요청할 때마다 서버가 HTML을 생성해 응답해 준다.
✔️ SSR의 동작 방식
- 사용자가 브라우저에서 특정 URL을 요청한다.
- 서버에서 해당 요청을 받아 데이터베이스와 통신하고 HTML을 완성한다.
- 완성된 HTML을 사용자에게 전송한다.
- 브라우저가 이를 받아 화면에 표시한다.
이 방식은 전통적인 웹사이트(예: PHP, Ruby on Rails 등)에서 많이 사용되었으며,
SEO(검색 엔진 최적화)와 초기 로딩 속도 면에서 유리하다.
✔️ SSR의 장점
✅ 빠른 초기 로딩 속도
- 서버에서 HTML을 완성해서 보내기 때문에, 브라우저가 바로 내용을 표시할 수 있다.
- 특히, 네트워크 속도가 느린 환경에서도 사용자 경험이 개선된다.
✅ SEO 친화적
- SSR 방식은 검색 엔진 크롤러가 쉽게 웹페이지를 수집하고 색인화할 수 있다.
- HTML이 서버에서 완전히 생성된 상태로 전송되므로 검색 엔진이 내용을 즉시 파악할 수 있다.
✅ SNS 공유 최적화
- 페이스북, 트위터 같은 SNS에서 웹페이지를 공유할 때, SSR 방식은 Open Graph 태그(OG 태그)를 포함한 HTML을 제공할 수 있어 미리보기 이미지, 설명 등이 정확하게 표시된다.
❌ SSR의 단점
❌ 서버 부하 증가
- 모든 요청마다 서버에서 HTML을 생성해야 하므로, 트래픽이 많아지면 서버에 부담이 커진다.
- 사용자가 많아질 경우, 서버 확장(스케일링)이 필요할 수도 있다.
❌ 페이지 전환 속도가 느림
- SSR은 새 페이지를 요청할 때마다 전체 페이지를 다시 로드해야 하므로, CSR 방식보다 부드러운 사용자 경험을 제공하기 어렵다.
2. CSR(Client-Side Rendering)이란?
CSR은 "클라이언트에서 렌더링하는 방식"이다. 서버에서 기본적인 HTML과 JavaScript 파일을 전송하면, 브라우저에서 JavaScript가 실행되면서 화면을 동적으로 구성하는 방식이다.
✔️ CSR의 동작 방식
- 사용자가 웹사이트에 접속하면, 브라우저는 최소한의 HTML과 JavaScript 파일을 다운로드한다.
- JavaScript가 실행되면서 필요한 데이터를 API로 요청한다.
- 응답받은 데이터를 이용해 브라우저에서 화면을 동적으로 구성한다.
CSR 방식은 React, Vue.js, Angular 같은 프레임워크에서 많이 사용되며, 싱글 페이지 애플리케이션(SPA, Single Page Application)에 적합하다.
✔️ CSR의 장점
✅ 빠른 페이지 전환 속도
- CSR은 최초 로딩이 끝난 후에는 새로운 페이지를 요청하는 것이 아니라, 필요한 데이터만 받아와서 업데이트한다.
- 따라서, 사용자가 여러 페이지를 탐색할 때 매우 빠르고 부드러운 경험을 제공한다.
✅ 서버 부하 감소
- HTML을 서버에서 매번 생성하지 않고, 클라이언트에서 JavaScript로 데이터를 받아와서 처리하므로 서버 부담이 줄어든다.
✅ 더 인터랙티브한 웹앱 구현 가능
- CSR은 사용자 인터랙션이 많은 웹 애플리케이션(예: 대시보드, 소셜 미디어, 채팅 앱)에 적합하다.
- 화면이 동적으로 변해야 하는 서비스에서 큰 장점을 가진다.
❌ CSR의 단점
❌ 초기 로딩 속도가 느림
- JavaScript가 실행되고 API 요청을 받아야 화면이 완성되므로, 첫 화면을 표시하기까지 시간이 걸릴 수 있다.
- 특히, 사용자의 인터넷 속도가 느리거나 모바일 환경에서는 체감 속도가 더 느려질 수 있다.
❌ SEO 최적화가 어려움
- 검색 엔진 크롤러는 JavaScript를 실행하지 않는 경우가 많아, CSR 방식에서는 웹페이지의 내용을 제대로 인덱싱하지 못할 수 있다.
❌ SNS 공유 문제
- CSR 방식에서는 JavaScript 실행 후에야 콘텐츠가 로드되기 때문에, SNS에서 공유할 때 OG 태그를 제대로 반영하기 어려울 수 있다.
3. SSR vs CSR, 언제 어떤 방식을 선택할까?
SSR | CSR | |
초기 로딩 속도 | 빠름 (HTML 완성 후 전송) | 느림 (JavaScript 실행 후 화면 구성) |
페이지 전환 속도 | 느림 (새 요청마다 새 HTML 생성) | 빠름 (클라이언트에서 처리) |
SEO 최적화 | 매우 좋음 | 추가 설정 필요 |
서버 부하 | 높음 (매 요청마다 HTML 생성) | 낮음 (데이터만 요청) |
SNS 공유 | OG 태그 지원 | 추가 설정 필요 |
적합한 사이트 유형 | 블로그, 뉴스, 전자상거래 사이트 | 대시보드, 웹앱, 싱글 페이지 애플리케이션(SPA) |
✅ SSR을 사용하면 좋은 경우
- 검색 엔진 최적화(SEO)가 중요한 웹사이트 (예: 블로그, 뉴스 사이트)
- 콘텐츠 중심의 웹사이트
- 소셜 미디어 공유가 중요한 경우 (OG 태그 활용)
✅ CSR을 사용하면 좋은 경우
- 페이지 전환이 잦고 동적인 웹앱 (예: 대시보드, 채팅 앱, 소셜 미디어)
- 서버 부하를 줄이고 싶을 때
- 모바일/데스크톱 앱처럼 부드러운 UX가 중요한 경우
.
4. 결론
SSR과 CSR은 각각의 장점과 단점이 명확한 만큼, 어떤 프로젝트냐에 따라 적절한 방식을
선택해야 한다.
SEO가 중요한 사이트는 SSR을, 빠른 사용자 경험이 중요한 웹앱은
CSR을 적용하는 것이 일반적이다.
하지만 Next.js처럼 두 방식을 혼합하여 활용하는 방법도 고려해 볼 만하다.
웹 개발을 할 때는 단순히 하나의 방식만 고집하기보다, 최적의 성능과 UX를 위해
다양한 렌더링 방식을
조합하는 것이 중요하다.
나같은 경우에는 UX가 중요하고 페이지의 전환이 잦아서 CSR로 진행하려고한다!!
각자의 프로젝트의 요구사항을 분석하고, 최적의 방법을 선택하는게 답인거같다!
'Devlog' 카테고리의 다른 글
JSON 파일을 작성 해볼까?! (2) | 2025.03.13 |
---|---|
React] Redux와 상태에 대한 이해 (2) | 2024.10.24 |
CSS] position: sticky로 메뉴바 고정시키기! (4) | 2024.10.18 |
웹에서 제공하는 파일 다운로드 방식] 정적 파일 vs 동적 파일 (6) | 2024.10.15 |
주니어 개발자의 우당탕탕 개발새발 스토리 (로직 설계) (6) | 2024.10.11 |