[javascript] Backbone.js에서 템플릿(Template) 엔진 사용법

Backbone.js는 자바스크립트 기반의 웹 애플리케이션을 구축하기 위한 프레임워크입니다. 이 프레임워크를 사용하면 MVC 아키텍처를 쉽게 구현할 수 있습니다. Backbone.js에서는 템플릿(HTML 코드를 동적으로 생성하는데 사용되는 형식) 엔진을 사용하여 데이터와 뷰를 결합할 수 있습니다. 이번 블로그 포스트에서는 Backbone.js에서 템플릿 엔진을 사용하는 방법을 알아보겠습니다.

1. 템플릿 엔진 선택

Backbone.js에서 템플릿 엔진을 사용하기 위해서는 먼저 엔진을 선택해야 합니다. Backbone.js는 기본적으로 템플릿 엔진을 내장하고 있지 않으므로, 추가적인 라이브러리를 이용해야 합니다. 대표적인 선택지로는 Handlebars.js, Underscore.js, Mustache 등이 있습니다.

2. 템플릿 작성

선택한 템플릿 엔진에 따라 템플릿을 작성합니다. 템플릿은 주로 HTML과 JavaScript 코드의 조합으로 구성됩니다. 데이터와 뷰를 동적으로 결합하기 위해 템플릿에는 특정한 표현식, 문법이 포함됩니다. 예를 들어 Handlebars.js를 사용한다면 다음과 같은 형식으로 템플릿을 작성할 수 있습니다:


<div>
  <h1>{{title}}</h1>
  <p>{{content}}</p>
</div>

3. 템플릿과 데이터 결합

Backbone.js에서는 모델과 뷰를 사용하여 템플릿과 데이터를 결합합니다.

var MyModel = Backbone.Model.extend({
  defaults: {
    title: "제목",
    content: "내용"
  }
});

var MyView = Backbone.View.extend({
  el: '#my-view',
  template: _.template($("#my-template").html()),
  render: function() {
    this.$el.html(this.template(this.model.toJSON()));
    return this;
  }
});

var myModel = new MyModel();
var myView = new MyView({ model: myModel });
myView.render();

위의 예제에서 myView는 Backbone.js의 View 객체입니다. template 속성은 선택한 템플릿 엔진으로부터 생성된 템플릿을 저장합니다. render 함수는 템플릿과 모델의 데이터를 결합하여 HTML 코드를 생성하고, myViewel 속성에 해당하는 DOM 요소에 결과를 삽입합니다.

4. 템플릿 업데이트

템플릿 엔진을 사용하면 데이터를 갱신할 때마다 뷰를 다시 그릴 필요가 없습니다. Backbone.js는 모델의 속성이 변경될 때 자동으로 템플릿 업데이트를 처리합니다. 따라서 모델을 갱신하면 템플릿의 데이터도 함께 갱신되어 뷰에 반영됩니다.

myModel.set({ title: "새로운 제목", content: "새로운 내용" });

위의 예제에서는 set 메소드를 사용하여 myModel의 속성을 변경했습니다. 이로 인해 자동으로 myView의 템플릿이 업데이트되고, 새로운 데이터가 화면에 표시됩니다.

마무리

Backbone.js의 템플릿 엔진 사용법을 알아보았습니다. 선택한 템플릿 엔진에 따라 다양한 문법과 기능을 활용할 수 있으니, 템플릿 작성 및 데이터 결합 시 해당 엔진의 문서를 참고하시기 바랍니다. Backbone.js는 템플릿 엔진을 사용하여 동적인 웹 애플리케이션을 구현하는데 유용한 프레임워크입니다.

참고: Backbone.js 공식 문서