📌SSR(서버 사이드 렌더링)과 CSR(클라이언트 사이드 렌더링)은 웹 애플리케이션에서 페이지를 렌더링하는 두 가지 주요 방식입니다.
SSR은 웹 애플리케이션의 페이지가 서버에서 미리 렌더링되어 클라이언트에게 HTML로 전달되는 방식입니다. 사용자가 요청을 보내면, 서버는 요청에 대한 결과를 포함한 완성된 HTML 페이지를 생성하여 브라우저에 보내게 됩니다.
@RequestMapping(value="/main")
public String ssrPage(Model model){
model.addAttribute("msg","Hello!");
return "index.jsp";
}
위와같이 index.jsp를 호출하고
<!-- index.jsp -->
<div>
${msg}
</div>
다음 jsp를 불러올 때 해당 html이 모두 렌더링된 후 클라이언트에게 보여지게 됩니.
SSR방식을 사용할 때 서버에서 HTML이 전부 로드된 후 클라이언트에게 보여질 때 자바스크립트를 통해 추가적인 기능(예: 이벤트 처리, 상태 관리 등)을 활성화하는 과정을 하이드레이션이라고 합니다.
하이드레이션은 SSR의 핵심 요소로, 사용자에게 빠르고 상호작용이 가능한 경험을 제공하는 데 중요한 역할을 합니다. 이 과정을 통해 페이지는 한 번의 서버 사이드 렌더링 후 JavaScript를 통해 동적인 기능을 유지하게 됩니다.
CSR은 웹 애플리케이션의 페이지가 클라이언트(브라우저)에서 JavaScript를 사용하여 렌더링되는 방식입니다. 서버는 기본적인 HTML 틀만 제공하고, 클라이언트가 필요한 콘텐츠를 API를 통해 비동기적으로 가져와 렌더링합니다.
<div class="targetDiv">
Hello!
</div>
위의 코드가 있을 때
setTimeout(function(){
$(".targetDiv").html("GoodBye!");
},1000);
해당 코드를 실행하면 클라이언트가 화면을 보고있는 상황에서 1초 후에 Hello!가 GoodBye!로 바뀌게 됩니다.
이렇게 비동기적으로 데이터가 처리되는 상황을 간단한 예로 들 수 있습니다.