[typescript] 클래스 내에서 멤버 메서드에 접근 제어자 사용하기

TypeScript는 JavaScript를 기반으로 하는 정적 타입 체크 기능을 추가한 언어입니다. 이 언어는 객체 지향 프로그래밍의 주요 요소 중 하나인 접근 제어자를 지원합니다. 이를 통해 클래스의 멤버 변수와 메서드에 대한 접근을 제어할 수 있습니다.

이 포스트에서는 TypeScript에서 클래스 내에서 멤버 메서드에 접근 제어자를 사용하는 방법을 알아보겠습니다.

1. 접근 제어자란?

접근 제어자는 클래스 멤버에 대한 접근 수준을 제어하는 데 사용됩니다. TypeScript는 세 가지의 접근 제어자를 지원합니다.

2. 멤버 메서드에 접근 제어자 사용하기

멤버 메서드에 접근 제어자를 사용하려면 메서드 이름 앞에 접근 제어자 키워드를 사용하면 됩니다.

class Example {
    private privateMethod() {
        // 클래스 내부에서만 접근 가능
    }

    public publicMethod() {
        // 어디서든 접근 가능
    }

    protected protectedMethod() {
        // 클래스 내부 및 파생 클래스에서 접근 가능
    }
}

위 예제에서 privateMethodprivate 접근 제어자를 가지고 있기 때문에 클래스 외부에서는 접근할 수 없습니다. 반면에 publicMethod는 어디서든 접근이 가능하며, protectedMethod는 클래스 내부와 파생 클래스에서만 접근이 가능합니다.

3. 예제

class Animal {
    public name: string;

    public constructor(name: string) {
        this.name = name;
    }

    public move(distanceInMeters: number) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}

class Dog extends Animal {
    public bark() {
        console.log('Woof! Woof!');
    }

    public moveAndMakeSound(distanceInMeters: number) {
        this.move(distanceInMeters);
        this.bark();
    }
}

const dog = new Dog('Buddy');
dog.moveAndMakeSound(10);

위 예제에서 Animal 클래스의 move 메서드는 public으로 선언되어 있기 때문에 Dog 클래스에서 상속받아 사용할 수 있습니다.

결론

TypeScript를 사용하여 클래스 내에서 멤버 메서드에 접근 제어자를 활용하면, 객체 지향 프로그래밍의 핵심 원칙 중 하나인 캡슐화를 구현할 수 있습니다. 개발자는 필요한 만큼의 정보만 노출시킴으로써 안정적인 코드를 작성할 수 있습니다.

접근 제어자를 사용함으로써 클래스의 인터페이스를 명확히 정의하고, 의도치 않은 접근으로부터 보호할 수 있습니다.

이상으로 TypeScript에서 클래스 내에서 멤버 메서드에 접근 제어자를 사용하는 방법에 대해 알아보았습니다.