CSR과 SSR 그리고 SPA까지
2023. 8. 2. 14:37ㆍReact
CSR은 무엇일까
CSR(Client-side rendering)은 말 그대로 웹 브라우저에서 페이지를 동적으로 렌더링하는 방식으로, 웹 애플리케이션에서 사용되는 렌더링 방식 중 하나다.
CSR은 초기에 서버에서 전달되는 HTML 페이지가 비어있거나 최소한의 내용만을 포함하여, JavaScript와 같은 클라이언트 측 스크립트를 사용하여 페이지를 동적으로 생성하고 렌더링한다.
장점
- 더 나은 사용자 경험을 가져올 수 있다.
초기 페이지 로딩 후 필요한 데이터만 비동기적으로 가져와 동적으로 페이지를 업데이트한다.
이로써 사용자는 빠른 페이지 전환과 부드러운 상호작용을 경험할 수 있다. - 페이지간 이동 시 빠른 로딩 속도
추후 서술할 SCR 보다 비교적 빠른 초기 로딩 속도를 선보인다. - 서버 부하 절감
페이지를 구성할 때 필요한 데이터만 요청하므로 서버 부하를 절감할 수 있다.
단점
- SEO
일부 검색 엔진은 HTML 페이지에 포함된 내용을 크롤링한다.
그러므로 CSR의 내용을 제대로 수집&인덱싱하기 어려울 수 있다. - 초기 페이지 로딩 속도
초기 페이지 로딩 시 모든 HTML과 JavaScript를 다운로드 하기에 로딩시간이 오래 걸릴 수 있다. - 보안 문제
클라이언트 측에서 로직을 실행하므로, 보안 측면에서 취약할 수 있다.
악의적인 사용자가 클라이언트 코드를 조작하거나 노출할 수 있으므로, 보안에 대한 신경을 써야한다. - 호환성
일부 오래된 브라우저에서는 최신 JavaScript 기능을 지원하지 않을 수 있으므로, 호환성 문제가 발생할 수 있다.
또한 저사양 장치에서는 원활한 동작을 보장할 수 없다.
SPA에서 SSR이 필요한 이유
SPA는 CSR 방식을 사용하여 구축된 웹 애플리케이션이다.
그렇기 때문에 위에서 나열한 CSR의 단점을 고스란히 안게 된다.
SSR
SSR(Server-side rendering)은 CSR과 반대로 서버에서 렌더링하여 클라이언트에서 전달하는 방식으로써,
다음과 같은 점들을 보완할 수 있다.
- SEO
처음부터 모두 렌더링된 페이지를 제공하므로 검색 엔진이 쉽게 수집 & 인덱싱 할 수 있다. - 초기 로딩 속도 개선
서버에서 렌더링하여 완전한 형태로 전달하므로 초기 로딩 속도를 개선할 수 있다.
글을 마치며...
물론, CSR만 쓴다거나, SSR만 쓰라는 것이 아니다.
둘의 장단점이 명확하기 때문에 프로젝트의 요구사항과 목표에 맞게 적절히 혼합하여 쓰면 좋을 것 같다.
'React' 카테고리의 다른 글
Next.js에서 yarn start(or npm run start)를 하면 무슨 일이 벌어질까? (0) | 2023.07.27 |
---|---|
Next 13으로 마이그레이션하기 (0) | 2023.07.18 |
antd DatePicker 삽질기: TypeError: t.weekday is not a function (0) | 2023.06.20 |
React, Next 환경에서 Portal 사용하기 (0) | 2023.06.13 |
React에서 모달을 Context를 이용해 전역에서 선언식으로 관리하기 (0) | 2023.06.13 |