[typescript] 프로퍼티 셋터/게터로 접근 제어하기

TypeScript에서는 클래스의 프로퍼티를 읽기 전용으로 만들거나 쓰기 전용으로 만들 수 있습니다. 이를 가능하게 하는 방법 중 하나는 프로퍼티 셋터와 게터를 사용하는 것입니다.

프로퍼티 셋터와 게터란?

프로퍼티 셋터는 값을 할당할 때 동작하는 함수이고, 게터는 값을 읽을 때 동작하는 함수입니다. 이를 사용하여 값을 설정 또는 검증하거나 래핑함으로써 프로퍼티에 접근을 더욱 정교하게 제어할 수 있습니다.

예시

다음은 TypeScript 클래스에서 프로퍼티 셋터와 게터를 사용하는 간단한 예시입니다.

class Circle {
    private _radius: number = 0;

    get radius(): number {
        return this._radius;
    }

    set radius(value: number) {
        if (value < 0) {
            throw new Error('Radius cannot be negative');
        }
        this._radius = value;
    }
}

const myCircle = new Circle();
myCircle.radius = 10; // 프로퍼티 셋터 호출
console.log(myCircle.radius); // 프로퍼티 게터 호출

위 코드에서 radius 프로퍼티는 내부적으로 _radius 프로퍼티를 이용하여 값을 저장하고, 프로퍼티 셋터에서 값의 유효성을 검사하고 설정합니다. 프로퍼티 게터는 값을 반환하기 전에 _radius 값을 반환합니다.

프로퍼티 셋터와 게터의 활용

프로퍼티 셋터와 게터를 사용하면 프로퍼티의 접근을 좀 더 세밀하게 제어할 수 있습니다. 예를 들어, 프로퍼티에 액세스 할 때 특정 조건을 체크한 후 값을 설정하거나, 민감한 데이터에 접근할 때 로깅을 추가하는 등 다양한 활용이 가능합니다.

이러한 방식으로 프로퍼티에 캡슐화와 보안을 더할 수 있으며, 코드 유지보수성을 높일 수 있습니다.

프로퍼티 셋터와 게터를 사용하면 클래스의 인터페이스를 강화하고, 코드의 안정성과 유연성을 향상시킬 수 있다는 것을 기억해 두세요.

결론

프로퍼티 셋터와 게터는 TypeScript에서 프로퍼티에 접근을 보다 세밀하게 제어하기 위한 강력한 도구입니다. 이를 통해 코드를 더 안전하고 응집력 있게 만들 수 있으며, 객체의 상태를 더욱 견고하게 유지할 수 있습니다.

프로퍼티 셋터와 게터의 활용은 코드를 더욱 간결하고 읽기 쉽게 만들어 줄 뿐만 아니라, 유지보수성을 높일 수 있다는 점에서 매우 유용합니다.

자바스크립트와 TypeScript의 활용에 대한 추가 정보는 TypeScript 공식 문서를 참고하세요.