[typescript] 변수에 접근 제어자 지정 시 주의할 점

변수에 접근 제어자를 지정하는 것은 TypeScript에서 코드를 구조화하고 안전성을 유지하는데 중요합니다. 하지만 이를 잘못 사용하면 예상치 못한 문제가 발생할 수 있습니다. 이번 포스트에서는 TypeScript 변수에 접근 제어자를 사용할 때 주의할 점에 대해 알아보겠습니다.

1. 접근 제어자란?

접근 제어자는 클래스 멤버에 대한 외부 접근을 제어하는 TypeScript의 기능입니다. 주로 public, protected, private 세 가지가 있으며, 각각 다음을 뜻합니다.

2. 주의할 점

2.1 protectedprivate의 차이

protectedprivate는 비슷해 보일 수 있지만, 상속 관계에서의 차이가 중요합니다. 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 멤버
}

결론

변수에 접근 제어자를 지정할 때는 protectedprivate의 상속 차이, readonly와의 조합, 초기화 등을 주의해야 합니다. 올바르게 사용하면 코드를 안전하게 유지할 수 있고, 의도치 않은 문제를 방지할 수 있습니다.

이상으로 TypeScript 변수에 접근 제어자를 지정할 때 주의할 점에 대해 알아보았습니다. 읽어주셔서 감사합니다.

TypeScript 공식 문서를 참고하면 더 많은 정보를 얻을 수 있습니다.