[typescript] protected 접근 제어자와 데이터 캡슐화
클래스 상속 및 데이터 캡슐화는 소프트웨어 개발에서 중요한 개념입니다. TypeScript에서 protected
접근 제어자를 사용하여 데이터를 안전하게 캡슐화하고, 상속 관계의 클래스들 간의 접근을 제어할 수 있습니다.
protected
키워드
protected
키워드는 해당 멤버에 접근하는데 있어서, 해당 클래스나 그 클래스를 상속한 자식 클래스에서만 접근할 수 있다는 것을 의미합니다.
class Person {
protected name: string;
constructor(name: string) {
this.name = name;
}
}
class Employee extends Person {
private department: string;
constructor(name: string, department: string) {
super(name);
this.department = department;
}
public getDetails() {
return `Name: ${this.name}, Department: ${this.department}`;
}
}
const emp = new Employee("John", "Sales");
console.log(emp.getDetails()); // Name: John, Department: Sales
console.log(emp.name); // Error: 'name' is protected and only accessible within class 'Person' and its subclasses.
위의 예제에서 name
멤버 변수는 Person
클래스에서 protected
로 선언되어 있으므로, Employee
클래스에서 직접 접근할 수 없습니다. Employee
클래스의 getDetails
메서드를 통해 name
멤버 변수에 접근하여 외부에 필요한 정보를 제공합니다.
데이터 캡슐화
protected
접근 제어자를 사용함으로써 데이터를 캡슐화하여 외부에서의 무단 접근을 방지하고, 안전한 상태로 유지할 수 있습니다. 이를 통해 코드의 견고성을 높이고, 유지 보수와 확장성을 향상시킬 수 있습니다.
상속 관계를 가진 클래스 간의 데이터 교환을 안전하게 할 수 있는 protected
접근 제어자를 적절히 활용하여, 안정적이고 유연한 소프트웨어를 개발할 수 있습니다.
결론
TypeScript에서 protected
접근 제어자를 효과적으로 활용하여 데이터를 캡슐화하고, 상속 관계의 클래스 간의 안전한 데이터 교환을 지원할 수 있습니다. 이를 통해 안전하고 유연한 코드를 작성하고, 유지 보수하기 쉬운 소프트웨어를 개발할 수 있습니다.
참고 문헌: