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

접근 제어자(access modifiers)는 객체지향 프로그래밍에서 중요한 개념으로, 클래스 멤버에 대한 접근을 제어하는 데 사용됩니다. JavaScript에서는 이러한 개념을 명확히 정의하기 어렵지만, ES6부터는 클래스에서 private 및 public 멤버를 명확히 정의할 수 있게 되었습니다.

private 멤버

JavaScript에서 private 멤버를 구현하는 방법 중 하나는 클로저(closure)를 사용하는 것입니다.

class Example {
  constructor() {
    let privateVar = 'I am private';

    this.getPrivate = function() {
      return privateVar;
    };
  }
}

위 예제에서 privateVarExample 클래스 내에서만 접근할 수 있습니다. 외부에서는 접근할 수 없습니다.

public 멤버

public 멤버는 클래스 외부에서 접근할 수 있는 멤버입니다. 기본적으로 JavaScript 클래스의 모든 멤버는 public입니다.

class Example {
  constructor() {
    this.publicVar = 'I am public';
  }

  publicMethod() {
    return 'This is a public method';
  }
}

캡슐화(encapsulation)와 정보 은폐(information hiding)

접근 제어자를 사용하여 클래스의 내부 구현을 숨기고, 필요한 경우에만 외부에서 접근할 수 있도록 하는 것은 캡슐화(encapsulation)의 핵심 개념입니다. 이를 통해 클래스의 내부 구현이 외부에 노출되지 않도록 함으로써 안정성과 유지보수 용이성을 증가시킬 수 있습니다.

결론

접근 제어자(private, public)는 JavaScript에서 클래스의 멤버에 접근을 제어하는 중요한 도구입니다. 이를 통해 캡슐화와 정보 은폐를 구현할 수 있으며, 안전하고 모듈화된 코드를 작성할 수 있습니다. ES6부터는 이러한 개념을 명확히 지원하므로, 객체지향 프로그래밍을 사용하는 개발자들은 이를 적극적으로 활용할 수 있습니다.

참고 자료: MDN web docs