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

자바스크립트에서 접근 제어자를 사용하면 객체의 속성과 메서드에 대한 접근을 제어할 수 있습니다. 기능적 측면뿐만 아니라 보안적 측면에서도 중요한 역할을 합니다.

private와 public 속성/메서드 정의

class Car {
  #brand; // private 속성
  constructor(brand) {
    this.#brand = brand;
  }
  getBrand() {
    return this.#brand; // public 메서드
  }
}

위의 예제에서 # 기호는 해당 속성이나 메서드가 private임을 나타냅니다.

활용 예시

let myCar = new Car('Toyota');
console.log(myCar.getBrand()); // 'Toyota' 출력
console.log(myCar.#brand); // SyntaxError: Private field '#brand' must be declared in an enclosing class

위 예제에서 myCar.getBrand()은 public 메서드이므로 정상적으로 호출되지만, myCar.#brand은 private 속성이기 때문에 접근할 수 없습니다.

왜 사용해야 하는가?

개발자는 객체의 내부 상태를 감추고, 외부에서 속성이나 메서드에 무분별한 접근을 막을 수 있습니다. 이를 통해 객체의 무결성을 보장하고 안전한 코드를 작성할 수 있습니다.

또한, 코드를 더 유지보수하기 쉽게 만들 수 있습니다. public 인터페이스를 통해 다른 코드와의 소통을 관리하고, private 부분의 구현은 내부적으로 변경할 수 있기 때문입니다.

결론

접근 제어자를 사용하면 객체를 더 우아하고 안전하게 다룰 수 있으며, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

참고: MDN Web Docs - Classes