자바스크립트에서 'this' 키워드를 사용한 예매 시스템 구현 방법

예매 시스템은 웹 애플리케이션에서 매우 중요한 기능입니다. 이 글에서는 자바스크립트의 ‘this’ 키워드를 사용하여 간단한 예매 시스템을 구현하는 방법을 알아보겠습니다.

1. 객체 생성

먼저 예매 시스템을 구현하기 위해 필요한 객체를 생성해야 합니다. 영화 관람권 종류, 상영 시간, 예매 가능 여부 등을 나타내는 Movie 객체를 생성합니다. 다음은 Movie 객체를 생성하는 코드입니다.

function Movie(title, price, duration) {
  this.title = title;
  this.price = price;
  this.duration = duration;
  this.available = true;
}

위의 코드에서 ‘this’ 키워드를 사용하여 생성자 함수 내에서 객체의 속성을 정의했습니다.

2. 예매 기능 구현

이제 예매 시스템에서 필요한 예매, 취소, 예매 가능 여부 확인 등의 기능을 구현해보겠습니다. Movie 객체에 해당 기능을 추가합니다.

Movie.prototype.book = function() {
  if (this.available) {
    console.log(`${this.title} 예매되었습니다.`);
    this.available = false;
  } else {
    console.log(`${this.title}은(는) 이미 예매된 좌석입니다.`);
  }
}

Movie.prototype.cancel = function() {
  console.log(`${this.title} 예매가 취소되었습니다.`);
  this.available = true;
}

Movie.prototype.checkAvailability = function() {
  if (this.available) {
    console.log(`${this.title}은(는) 예매 가능합니다.`);
  } else {
    console.log(`${this.title}은(는) 예매 불가능합니다.`);
  }
}

위의 코드에서 ‘this’ 키워드를 사용하여 현재 객체의 속성에 접근하고 수정할 수 있습니다.

3. 사용 예시

예매 시스템의 기능을 사용하는 예시 코드입니다.

const movie1 = new Movie('인터스텔라', 10000, '200분');
const movie2 = new Movie('어벤져스: 엔드게임', 12000, '180분');

movie1.book(); // 인터스텔라 예매되었습니다.
movie2.book(); // 어벤져스: 엔드게임 예매되었습니다.
movie1.book(); // 인터스텔라은 이미 예매된 좌석입니다.

movie2.checkAvailability(); // 어벤져스: 엔드게임은 예매 불가능합니다.

movie2.cancel(); // 어벤져스: 엔드게임 예매가 취소되었습니다.
movie2.checkAvailability(); // 어벤져스: 엔드게임은 예매 가능합니다.

위의 예시 코드에서 ‘this’ 키워드는 해당 객체를 참조하며, 각 객체의 속성과 메서드를 사용할 수 있습니다.

마무리

이렇게 자바스크립트에서 ‘this’ 키워드를 활용하여 기본적인 예매 시스템을 구현해보았습니다. ‘this’ 키워드를 올바르게 사용하면 객체의 속성과 메서드에 쉽게 접근할 수 있습니다. 앞으로 자바스크립트 개발에서 ‘this’ 키워드를 적절히 활용하여 다양한 기능을 구현해보세요. #자바스크립트 #예매시스템