[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;
};
}
}
위 예제에서 privateVar
은 Example
클래스 내에서만 접근할 수 있습니다. 외부에서는 접근할 수 없습니다.
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