TypeScript는 JavaScript를 기반으로 하는 정적 타입 체크 기능을 추가한 언어입니다. 이 언어는 객체 지향 프로그래밍의 주요 요소 중 하나인 접근 제어자를 지원합니다. 이를 통해 클래스의 멤버 변수와 메서드에 대한 접근을 제어할 수 있습니다.
이 포스트에서는 TypeScript에서 클래스 내에서 멤버 메서드에 접근 제어자를 사용하는 방법을 알아보겠습니다.
1. 접근 제어자란?
접근 제어자는 클래스 멤버에 대한 접근 수준을 제어하는 데 사용됩니다. TypeScript는 세 가지의 접근 제어자를 지원합니다.
- public: 어디서든 접근할 수 있으며, 기본적으로 모든 멤버의 접근 제어자입니다.
- private: 클래스 내부에서만 접근할 수 있습니다.
- protected: 클래스 내부 및 파생 클래스에서 접근할 수 있습니다.
2. 멤버 메서드에 접근 제어자 사용하기
멤버 메서드에 접근 제어자를 사용하려면 메서드 이름 앞에 접근 제어자 키워드를 사용하면 됩니다.
class Example {
private privateMethod() {
// 클래스 내부에서만 접근 가능
}
public publicMethod() {
// 어디서든 접근 가능
}
protected protectedMethod() {
// 클래스 내부 및 파생 클래스에서 접근 가능
}
}
위 예제에서 privateMethod
는 private
접근 제어자를 가지고 있기 때문에 클래스 외부에서는 접근할 수 없습니다. 반면에 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에서 클래스 내에서 멤버 메서드에 접근 제어자를 사용하는 방법에 대해 알아보았습니다.