[javascript] 접근 제어자 (private, public)의 활용
자바스크립트의 클래스는 기본적으로 public
으로 모든 속성과 메서드에 접근할 수 있습니다. 하지만 ES6부터는 private
및 public
접근 제어자를 제공하여 클래스 내부의 정보은닉 및 보호를 할 수 있습니다. 이번 글에서는 이러한 접근 제어자를 어떻게 사용하는지에 대해 알아보겠습니다.
private
접근 제어자
private
접근 제어자를 사용하면 해당 멤버에 접근할 수 있는 권한을 제한할 수 있습니다. 이를 통해 클래스 내부의 정보를 캡슐화하고 외부에서의 오용을 방지할 수 있습니다.
예를 들어, 다음과 같이 private
멤버를 정의할 수 있습니다.
class Car {
#model; // private 멤버 선언
constructor(model) {
this.#model = model;
}
#drive() { // private 메서드 정의
console.log(`${this.#model} is being driven`);
}
}
위 코드에서 #
기호로 시작하는 멤버는 private
으로 정의됩니다. 따라서 Car
클래스 외부에서는 #model
및 #drive()
에 접근할 수 없습니다.
public
접근 제어자
반면에 public
접근 제어자는 외부에서 자유롭게 접근할 수 있는 멤버를 정의할 때 사용됩니다.
예를 들어, 다음과 같이 public
멤버를 정의할 수 있습니다.
class Car {
#model; // private 멤버
#make; // private 멤버
constructor(model, make) {
this.#model = model;
this.#make = make;
}
startEngine() { // public 메서드
console.log(`Engine started for ${this.#make} ${this.#model}`);
}
}
위 코드에서 startEngine()
메서드는 외부에서 자유롭게 호출할 수 있는 public
메서드로 정의되어 있습니다.
결론
private
및 public
접근 제어자를 적절히 활용하면 클래스의 캡슐화와 정보은닉을 보다 효과적으로 수행할 수 있습니다. 이는 코드의 안정성을 높이고 외부 접근에 대한 제어를 가능케 합니다.
위에서 다룬 내용을 토대로, 다양한 상황에 맞게 private
및 public
접근 제어자를 적용하여 보다 견고하고 안전한 코드를 작성할 수 있습니다.
참고 자료: