자바스크립트는 매우 유연하고 동적인 언어입니다. 이러한 특성 때문에 많은 개발자들이 자바스크립트를 선호하게 됩니다. 하지만 이러한 유연성 때문에 자바스크립트 코드가 복잡하고 유지보수하기 어렵게 됩니다.
이러한 문제를 해결하기 위해 객체와 클래스를 사용하여 더 나은 자바스크립트 코드를 작성할 수 있습니다.
객체는 속성(property)과 메소드(method)를 가지는 데이터 타입입니다. 이러한 속성과 메소드를 정의하면 객체를 사용하여 데이터를 구조화하고 관리할 수 있습니다.
예를 들어, 간단한 계산기 예제를 만들어보겠습니다. 계산기에는 현재 값과 기록된 값, 그리고 기본적인 수학 기능이 필요합니다. 이러한 기능을 가진 계산기 객체를 만들 수 있습니다.
“`js
const calculator = {
currentValue: 0,
history: [],
add: function(num) {
this.currentValue += num;
this.history.push(`Add ${num}`);
},
subtract: function(num) {
this.currentValue -= num;
this.history.push(`Subtract ${num}`);
},
multiply: function(num) {
this.currentValue *= num;
this.history.push(`Multiply by ${num}`);
},
divide: function(num) {
this.currentValue /= num;
this.history.push(`Divide by ${num}`);
},
clear: function() {
this.currentValue = 0;
this.history = [];
},
};
“`
이제 이 객체를 사용하여 계산기 기능을 수행할 수 있습니다.
“`js
calculator.add(5); // currentValue: 5, history: [‘Add 5’]
calculator.subtract(2); // currentValue: 3, history: [‘Add 5’, ‘Subtract 2’]
calculator.multiply(3); // currentValue: 9, history: [‘Add 5’, ‘Subtract 2’, ‘Multiply by 3’]
calculator.divide(2); // currentValue: 4.5, history: [‘Add 5’, ‘Subtract 2’, ‘Multiply by 3’, ‘Divide by 2’]
calculator.clear(); // currentValue: 0, history: []
“`
이러한 객체를 사용하여 코드를 구조화하면 유지보수하기 쉬워집니다. 예를 들어, 계산기 객체에서 기능을 추가하거나 수정할 경우 코드를 직관적으로 파악할 수 있습니다.
또한 클래스를 사용하여 여러 개의 객체를 생성할 수 있습니다. 클래스는 객체를 생성하기 위한 템플릿 역할을 합니다. 클래스를 사용하면 객체의 속성과 메소드를 더 쉽게 정의할 수 있습니다.
예를 들어, Person 클래스를 만들어보겠습니다. Person 클래스는 이름과 나이를 가진 객체를 생성합니다.
“`js
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, my name is ${this.name}. I am ${this.age} years old.`);
}
happyBirthday() {
this.age++;
console.log(`Happy birthday, ${this.name}! You are now ${this.age} years old.`);
}
}
const person1 = new Person(‘John’, 30);
const person2 = new Person(‘Alice’, 25);
person1.sayHello(); // “Hello, my name is John. I am 30 years old.”
person2.sayHello(); // “Hello, my name is Alice. I am 25 years old.”
person1.happyBirthday(); // “Happy birthday, John! You are now 31 years old.”
“`
이제 클래스를 사용하여 Person 객체를 생성할 수 있습니다. 객체를 생성할 때 클래스의 생성자 함수를 호출하면서 객체의 속성을 초기화할 수 있습니다. 또한 클래스의 메소드를 사용하여 객체의 동작을 정의할 수 있습니다.
이러한 방식으로 객체와 클래스를 사용하여 자바스크립트 코드를 작성하면 코드를 보다 체계적으로 구성할 수 있습니다. 객체와 클래스를 사용하면 코드를 보다 쉽게 이해할 수 있고 유지보수가 용이하게 됩니다.