변수에 접근 제어자를 지정하는 것은 TypeScript에서 코드를 구조화하고 안전성을 유지하는데 중요합니다. 하지만 이를 잘못 사용하면 예상치 못한 문제가 발생할 수 있습니다. 이번 포스트에서는 TypeScript 변수에 접근 제어자를 사용할 때 주의할 점에 대해 알아보겠습니다.
1. 접근 제어자란?
접근 제어자는 클래스 멤버에 대한 외부 접근을 제어하는 TypeScript의 기능입니다. 주로 public
, protected
, private
세 가지가 있으며, 각각 다음을 뜻합니다.
public
: 어디에서나 접근 가능protected
: 파생 클래스에서만 접근 가능private
: 클래스 내부에서만 접근 가능
2. 주의할 점
2.1 protected
와 private
의 차이
protected
와 private
는 비슷해 보일 수 있지만, 상속 관계에서의 차이가 중요합니다. protected
멤버는 파생 클래스에서 접근할 수 있지만, private
멤버는 그렇지 않습니다.
class Animal {
private name: string;
}
class Dog extends Animal {
greet() {
console.log(this.name); // 에러: 'name'은 private이므로 접근할 수 없습니다.
}
}
2.2 readonly
와의 조합
readonly
와 접근 제어자를 조합하면 더 강력한 제어가 가능합니다. 예를 들어, private readonly
로 변수를 선언하면 값을 수정할 수 없고 클래스 외부에서도 접근할 수 없습니다.
class Person {
private readonly id: number;
}
2.3 초기화
접근 제어자가 지정된 변수는 선언과 동시에 초기화되지 않았을 때 기본값을 갖지 않습니다. 초기화하지 않은 변수에 접근하려고 시도하면 컴파일러가 에러를 발생시킵니다.
class Example {
private name: string; // 에러: 초기화되지 않은 private 멤버
}
결론
변수에 접근 제어자를 지정할 때는 protected
와 private
의 상속 차이, readonly
와의 조합, 초기화 등을 주의해야 합니다. 올바르게 사용하면 코드를 안전하게 유지할 수 있고, 의도치 않은 문제를 방지할 수 있습니다.
이상으로 TypeScript 변수에 접근 제어자를 지정할 때 주의할 점에 대해 알아보았습니다. 읽어주셔서 감사합니다.
TypeScript 공식 문서를 참고하면 더 많은 정보를 얻을 수 있습니다.