[typescript] protected 접근 제어자의 활용 방법

이 글에서는 protected 접근 제어자를 TypeScript에서 어떻게 활용하는지에 대해 알아보겠습니다.

protected 접근 제어자란?

protected 접근 제어자는 부모 클래스에 의해 파생된 클래스 내에서만 접근할 수 있는 멤버를 지정합니다. 즉, 상속된 클래스 내에서만 접근할 수 있도록 제한하는 역할을 합니다.

protected 접근 제어자의 활용

protected 접근 제어자를 가진 멤버는 파생된 클래스에서만 접근이 가능하기 때문에, 다음과 같은 상황에서 유용하게 활용될 수 있습니다.

1. 메서드와 속성의 보호

protected 접근 제어자를 사용하면 해당 멤버를 외부에서 직접 접근하는 것을 제한할 수 있습니다. 이를 통해 부모 클래스의 멤버를 파생된 클래스에서만 사용할 수 있도록 보호할 수 있습니다.

class Animal {
    protected sound: string;

    protected makeSound() {
        console.log(this.sound);
    }
}

class Dog extends Animal {
    constructor() {
        super();
        this.sound = "woof";
    }

    public bark() {
        this.makeSound();
    }
}

const dog = new Dog();
dog.bark(); // "woof" 출력
dog.makeSound(); // 에러 발생: "makeSound"에 접근할 수 없음

2. 상속 관계의 유연한 관리

protected 접근 제어자를 사용하면 부모 클래스의 내부 구현을 파생된 클래스에서도 활용할 수 있습니다. 이를 통해 상속 관계를 유연하게 관리할 수 있습니다.

결론

protected 접근 제어자는 부모 클래스와 파생된 클래스 간의 상속 관계를 보호하고 유연하게 관리할 수 있도록 도와줍니다. 이를 통해 안전한 상속 구조와 모듈화된 코드를 구현할 수 있습니다.