Springboot + mustache로 개발할때 서버사이드랜더링 하지 않고 스크립트(js)에서 랜더링하는 방법

Spring Boot와 Mustache를 활용한 웹 개발에서는 서버사이드 랜더링(Server-Side Rendering, SSR) 외에도 클라이언트 사이드에서 데이터를 처리하고 랜더링하는 방법이 있습니다. 이 글에서는 이러한 클라이언트 사이드 랜더링 방법을 상세하게 살펴보겠습니다.

1. 서버사이드 랜더링의 개념

서버사이드 랜더링은 서버에서 HTML을 생성하여 클라이언트에게 전달하는 방식입니다. 이는 초기 로딩 속도가 빠르고 SEO에 유리한 장점이 있지만, 복잡한 사용자 인터페이스를 처리하기에는 효율적이지 않을 수 있습니다. 주로 데이터가 자주 변동하지 않는 웹 애플리케이션에서 사용됩니다.

2. 클라이언트 사이드 랜더링의 필요성

클라이언트 사이드 랜더링은 사용자 브라우저에서 JavaScript를 통해 데이터를 랜더링하는 방식입니다. 이 방법의 주요 장점은 다음과 같습니다:

빠른 반응 속도: 사용자 상호작용에 즉각적으로 반응할 수 있습니다.
동적인 UI: 사용자가 요구하는 데이터만을 받아와서 그때그때 표시할 수 있습니다.
SEO 최적화: 최신 브라우저에서는 JavaScript로 랜더링된 내용도 검색 엔진이 인식할 수 있어 SEO에 긍정적인 영향을 미칠 수 있습니다.

2.1 클라이언트 사이드 랜더링 구현 방법

Mustache 템플릿과 JavaScript를 활용하여 클라이언트 사이드 랜더링을 쉽게 구현할 수 있습니다. 다음은 간단한 구현 예시입니다.

1. HTML 파일 설정:
html




Client Side Rendering





2. JavaScript 파일(script.js):
javascript
$(document).ready(function() {
const template = “

{{title}}

{{message}}

“;
const data = {
title: “클라이언트 사이드 랜더링”,
message: “이 내용은 JavaScript에서 랜더링된 것입니다.”
};

const rendered = Mustache.render(template, data);
$(‘#content’).html(rendered);
});

2.2 데이터 로딩 및 랜더링

서버에서 데이터를 가져와서 표시하는 방법도 간단합니다. AJAX 호출을 통해 서버에서 데이터를 fetch한 후, 그 데이터를 Mustache에 전달하여 랜더링할 수 있습니다. 예를 들어:

javascript
$.get(‘https://api.example.com/data’, function(data) {
const template = “

{{title}}

{{message}}

“;
const rendered = Mustache.render(template, data);
$(‘#content’).html(rendered);
});

위 예시는 REST API로부터 데이터를 받아와 랜더링하는 과정입니다. 이러한 방식은 보다 동적인 웹 애플리케이션을 제작할 수 있게 해 줍니다.

3. 결론

Spring Boot와 Mustache를 사용하여 클라이언트 사이드에서 랜더링하는 방법은 다양한 웹 애플리케이션에서 매우 유용하게 활용될 수 있습니다. 특히 데이터가 빈번하게 변동할 때 사용자 경험을 극대화할 수 있는 방법이므로 활용 가능성을 적극적으로 고려해보시기 바랍니다.