March 26, 2023
현업에서 일을 하다보니 렌더링에 대한 CS지식이 확립이 되어야한다는 필요성을 느꼈다. 사실 SSR과 CSR은 면접단골 질문이라 수없이 많이 공부하고 내용을 정리한 적도 있는 주제이다. 이번 기회에 관련된 개념을 깔끔하게 재정립 해보자.
MPA는 Multi-Page Application의 약자로, 말 그대로 여러 페이지로 이루어진 애플리케이션이다. 사용자가 새로운 페이지를 요청할 때마다 서버에서 해당 페이지를 다시 불러와 전체 페이지를 새로 고친다. 이러한 방식은 전통적인 웹 사이트의 아키텍처와 유사하다. MPA의 장점은 페이지 이동에 대한 즉각적인 렌더링이 가능하며, SEO 최적화가 상대적으로 쉽다.
SPA는 Single-Page Application의 약자로, 페이지가 하나뿐인 애플리케이션이다. 사용자가 애플리케이션에 접근할 때, 서버는 초기 페이지와 필요한 리소스를 제공하고, 이후에는 모든 데이터 교환이 클라이언트 측에서 이루어진다. 이를 통해 애플리케이션의 성능과 속도를 향상시킬 수 있다. SPA의 장점은 빠른 속도와 유연한 UI, 그리고 더 나은 사용자 경험을 제공할 수 있다.
서버 측 렌더링(SSR)은 서버에서 페이지의 초기 HTML과 CSS를 렌더링하는 방식이다. 서버에서 페이지를 완전히 렌더링하고, 클라이언트에서는 추가적인 JavaScript 요청을 통해 동적인 데이터를 가져오는 방식이다. 이러한 방식은 초기 로딩 속도가 빠르며, 검색 엔진 최적화(SEO)에 유리하다. 그러나, 초기 로딩 속도는 빠르지만, 서버의 처리량이 많아질 수 있고, 페이지가 전환될 때마다 새로고침이 발생하여 사용자 경험에 불편함을 유발할 수 있다.
클라이언트 측 렌더링(CSR)은 초기 HTML과 CSS를 클라이언트에서 받아와서 렌더링하고, JavaScript를 통해 동적인 데이터를 가져오는 방식이다. 이러한 방식은 초기 로딩 속도가 느리지만, 페이지의 전환 및 상호작용이 매우 빠르며, 사용자 경험이 좋다. 그러나, 검색 엔진 최적화(SEO)에는 취약하며, 초기 로딩 속도가 느린 것은 사용자 경험에 불편함을 유발할 수 있다.
// JavaScript 기반 웹 프레임워크들의 시작 index.html
<html>
<head>
<title>Title</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
“아니다. ”