웹 애플리케이션을 개발할 때, 우리는 "사용자에게 화면을 어떻게 보여줄 것인가" 라는 질문에 마주하게 됩니다. 이는 단순히 UI를 구성하는 문제를 넘어, 성능, 사용자 경험, 유지 보수성, SEO 등 여러 측면에 영향을 주는 중요한 결정입니다.
이와 관련해 프론트엔드에서 가장 핵심적으로 고려해야할 개념이 CSR(Client-Side Rendering)과 SSR(Server-Side Rendering)입니다. 각각의 렌더링 방식은 상황과 목적에 따라 뚜렷한 특성과 차별점을 가지므로, 프로젝트의 요구사항에 따라 신중하게 선택할 필요가 있습니다.
"모든 것을 브라우저에서 처리한다."
CSR은 콘텐츠를 클라이언트, 즉 브라우저에서 동적으로 렌더링하는 방식입니다. 사용자가 페이지에 처음 접속하면 기본적인 HTML과 JavaScript 파일만 내려받고, 이후 브라우저가 JavaScript를 실행하면서 필요한 데이터를 API를 통해 받아오고 화면을 구성합니다.
✅ 장점
⚠️ 단점
"페이지를 서버에서 그려서 보내준다."
SSR은 클라이언트의 요청이 들어올 때마다 서버에서 완성된 HTML을 만들어 전달하는 방식입니다. 초기 페이지가 빠르게 로딩되며, 검색 엔진이 HTML 구조를 바로 인식할 수 있어 SEO에도 유리합니다. 또한, 자바스크립트가 꺼진 환경에서도 콘텐츠가 노출됩니다.
✅ 장점
⚠️ 단점
렌더링 방식은 서비스의 목적, 사용자 흐름, 콘텐츠 특성에 따라 달라져야 합니다. 아래는 대표적인 상황별 선택 예시입니다.
SSR 또는 SSG
CSR
SSR
렌더링 방식은 단순히 프론트엔드 구현 방식을 선택하는 문제가 아니라, 전체 서비스의 방향성과 사용자 경험에 직접적인 영향을 주는 요소입니다. 프로젝트를 통해 CSR과 SSR을 직접 적용하고 비교해보며, 어떤 방식이 어떤 상황에 더 적합한지 실질적인 인사이트를 얻고 싶다는 생각을 했습니다. 나아가, 잘못된 렌더링 방식을 선택했을 때 어떤 문제가 발생하는지도 체감하면서 실전 감각을 키워나가고자 합니다.