[javascript] 접근 제어자 (private, public)의 활용

자바스크립트의 클래스는 기본적으로 public으로 모든 속성과 메서드에 접근할 수 있습니다. 하지만 ES6부터는 privatepublic 접근 제어자를 제공하여 클래스 내부의 정보은닉 및 보호를 할 수 있습니다. 이번 글에서는 이러한 접근 제어자를 어떻게 사용하는지에 대해 알아보겠습니다.

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 메서드로 정의되어 있습니다.

결론

privatepublic 접근 제어자를 적절히 활용하면 클래스의 캡슐화와 정보은닉을 보다 효과적으로 수행할 수 있습니다. 이는 코드의 안정성을 높이고 외부 접근에 대한 제어를 가능케 합니다.

위에서 다룬 내용을 토대로, 다양한 상황에 맞게 privatepublic 접근 제어자를 적용하여 보다 견고하고 안전한 코드를 작성할 수 있습니다.

참고 자료: