[javascript] 프로토타입 상속을 통한 성능 개선

JavaScript는 프로토타입 기반 언어이기 때문에 객체 간 상속을 위해 프로토타입을 활용합니다. 이때, 올바르게 프로토타입을 활용하면 코드의 가독성과 성능을 개선할 수 있습니다.

프로토타입 상속의 이점

프로토타입 상속을 사용하면 여러 객체가 하나의 프로토타입을 공유함으로써 메모리를 절약할 수 있습니다. 이는 객체 간에 공통된 메서드나 속성이 많을 때 매우 유용합니다. 또한, 프로토타입 상속은 동적으로 객체의 동작을 바꿀 수 있어 유연성을 제공합니다.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.sayHello = function() {
  console.log(`Hello, my name is ${this.name}`);
}

function Employee(name, age, role) {
  Person.call(this, name, age);
  this.role = role;
}

Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee;

Employee.prototype.sayRole = function() {
  console.log(`My role is ${this.role}`);
}

let john = new Employee('John', 30, 'Developer');
john.sayHello();
john.sayRole();

위 예제에서 EmployeePerson의 프로토타입을 상속받아 sayHello 메서드를 공유하고, sayRole 메서드를 독자적으로 추가했습니다.

성능 개선을 위한 프로토타입 상속 사용 시 주의할 점

프로토타입 체인을 재귀적으로 탐색하며 메서드나 속성을 찾기 때문에 과도한 프로토타입 상속은 성능에 영향을 미칠 수 있습니다. 또한, 프로퍼티를 동적으로 추가하거나 수정할 때도 주의해야 합니다. 성능 향상을 위해 프로토타입 체인을 지나치게 길게 하지 않고, 불필요한 프로퍼티를 추가하지 않는 것이 중요합니다.

결론

프로토타입 상속을 올바르게 활용하면 코드의 가독성과 성능을 개선할 수 있습니다. 그러나 과도한 프로토타입 상속은 오히려 성능을 저하시킬 수 있으므로 신중하게 활용해야 합니다.

참고 자료