[typescript] protected 접근 제어자와 객체의 상태 변경

TypeScript에서 protected 접근 제어자는 객체의 내부 상태를 변경할 때 유용하게 사용됩니다. 이 접근 제어자는 해당 클래스에서 파생된 클래스에서만 접근할 수 있도록 제한하는 역할을 합니다. 이 포스트에서는 protected 접근 제어자가 객체의 상태를 어떻게 변경하는지 살펴보겠습니다.

protected 접근 제어자란?

protected 접근 제어자는 해당 멤버를 포함하는 클래스와 파생된 클래스로만 접근할 수 있도록 제한하는 역할을 합니다. 이는 객체의 내부 상태를 보호하면서 해당 상태에 대한 변경을 허용함으로써 캡슐화를 강화하는 데 도움이 됩니다.

객체의 상태 변경 예시

다음은 protected 접근 제어자를 사용하여 객체의 상태를 변경하는 간단한 예시 코드입니다.

class Animal {
  protected sound: string;

  constructor(sound: string) {
    this.sound = sound;
  }

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

class Dog extends Animal {
  constructor() {
    super("Woof");
  }

  makeLoudSound() {
    this.sound = this.sound.toUpperCase(); // 여기서 protected 속성에 접근 가능
    this.makeSound();
  }
}

const dog = new Dog();
dog.makeSound(); // "Woof"를 출력
dog.makeLoudSound(); // "WOOF"를 출력

위의 예시에서 Animal 클래스의 sound 속성은 protected로 선언되어 있습니다. 따라서 Dog 클래스의 makeLoudSound 메서드 내에서 sound 속성에 접근하여 값을 변경할 수 있습니다.

protected를 사용해야 하는가?

protected 접근 제어자를 사용함으로써 객체의 내부 상태를 안전하게 유지할 수 있습니다. 이것은 해당 상태에 대한 변경을 허용함으로써 유연성을 제공하면서도 외부에서의 접근을 제한하는 데 도움이 됩니다.

또한, protected를 사용하면 코드를 더 쉽게 이해하고 유지보수할 수 있습니다. 해당 멤버의 사용 범위가 명확하게 정의되므로, 코드의 의도가 명확해지고 실수를 줄일 수 있습니다.

결론

protected 접근 제어자는 TypeScript에서 객체의 내부 상태를 캡슐화하고 보호하는 데 유용한 도구입니다. 이를 통해 코드의 안전성과 가독성을 높일 수 있으며, 파생 클래스에서만 접근이 가능하도록 제한함으로써 객체의 상태를 안전하게 변경할 수 있습니다.

protected를 사용하여 객체의 상태를 유연하게 변경하고, 동시에 안전하게 유지하십시오.

많은 프로그래머들이 자신의 블로그나 TypeScript 공식 문서에서 해당 내용을 자세히 다루고 있습니다.

이 내용은 TypeScript 핸드북의 접근 제어자 부분에서도 확인할 수 있습니다.