[javascript] Backbone.js를 사용한 프로젝트 예시

이번 포스트에서는 Backbone.js라는 자바스크립트 라이브러리를 사용하여 프로젝트를 구현하는 예시를 알아보겠습니다. Backbone.js는 MVC (Model-View-Controller) 패턴을 기반으로한 웹 애플리케이션을 개발하기 위해 사용되는 도구입니다.

1. 프로젝트 설정

우선 Backbone.js를 프로젝트에서 사용하려면 먼저 해당 라이브러리를 다운로드하고 HTML 파일에 포함해야 합니다. 다음과 같이 script 태그를 사용하여 Backbone.js를 추가합니다.

<script src="backbone.js"></script>

2. 모델 정의

Backbone.js에서는 데이터를 모델로 정의합니다. 모델은 애플리케이션의 데이터 및 비즈니스 로직을 캡슐화한 객체입니다. 예를 들어, 사용자의 정보를 담는 UserModel 모델을 정의해보겠습니다.

var UserModel = Backbone.Model.extend({
  defaults: {
    name: '',
    age: 0,
    email: ''
  }
});

3. 뷰 정의

뷰는 모델의 변경사항을 시각적으로 반영하는 역할을 합니다. 다음과 같이 UserView라는 뷰를 정의해보겠습니다. 여기서는 단순히 사용자의 이름과 나이를 표시하는 기능만 구현합니다.

var UserView = Backbone.View.extend({
  el: '#user-container',
  
  initialize: function() {
    this.listenTo(this.model, 'change', this.render);
  },
  
  render: function() {
    this.$el.html('<p>Name: ' + this.model.get('name') + '</p>' +
                  '<p>Age: ' + this.model.get('age') + '</p>');
    return this;
  }
});

4. 컨트롤러 정의

컨트롤러는 뷰와 모델을 관리하며 사용자의 입력에 따른 로직 처리를 담당합니다. 다음과 같이 UserController라는 컨트롤러를 정의해보겠습니다. 여기서는 사용자의 이름 변경과 나이 변경을 처리합니다.

var UserController = Backbone.View.extend({
  el: '#user-form',
  
  events: {
    'change #name-input': 'updateName',
    'change #age-input': 'updateAge'
  },
  
  updateName: function(e) {
    this.model.set('name', e.target.value);
  },
  
  updateAge: function(e) {
    this.model.set('age', parseInt(e.target.value));
  }
});

5. 애플리케이션 실행

이제 모델, 뷰, 컨트롤러를 연결하고 사용자 인터페이스를 표시하기 위해 애플리케이션을 실행해보겠습니다. 다음과 같이 코드를 작성해 보세요.

var user = new UserModel();
var userView = new UserView({ model: user });
var userController = new UserController({ model: user });

위 코드는 UserModel 인스턴스, UserView 인스턴스, UserController 인스턴스를 생성합니다. 생성된 인스턴스들은 서로를 참조하여 모델과 뷰를 연결하고 사용자 인터페이스를 표시합니다.

결론

이렇게 Backbone.js를 사용하여 모델, 뷰, 컨트롤러를 정의하고 애플리케이션을 구현하는 예시를 살펴보았습니다. Backbone.js를 사용하면 MVC 패턴에 기반한 웹 애플리케이션을 구축할 수 있고, 코드의 구조와 가독성을 높일 수 있습니다. 간단한 예제이지만 실제 프로젝트에서도 유용하게 사용될 수 있습니다.

더 자세한 정보는 Backbone.js 공식 문서를 참고해주세요.