[typescript] 접근 제어자를 사용한 정보 은닉의 중요성
목차
- 정보 은닉의 중요성
- TypeScript에서의 접근 제어자
- 정보 은닉 구현 예시
1. 정보 은닉의 중요성
정보 은닉은 외부에서 클래스의 내부 상태를 직접 조작할 수 없도록 함으로써 데이터를 보호하고 클래스의 내부 구현을 숨기는 데 중요합니다. 이는 코드의 유지보수성과 안정성을 향상시키며, 클래스의 내부 동작에 대한 의존성을 줄여줍니다.
2. TypeScript에서의 접근 제어자
TypeScript는 public
, private
, protected
세 가지의 접근 제어자를 지원합니다.
public
: 어디서나 접근이 가능한 기본 제어자private
: 해당 클래스 내부에서만 접근이 가능한 제어자protected
: 해당 클래스 내부 및 상속받은 하위 클래스에서만 접근이 가능한 제어자
class Example {
public prop1: string;
private prop2: number;
protected prop3: boolean;
constructor() {
this.prop1 = 'public';
this.prop2 = 123;
this.prop3 = true;
}
}
위의 예시에서 prop1
은 public
으로 선언되어 외부에서도 접근할 수 있지만, prop2
와 prop3
은 각각 private
와 protected
로 선언되어 클래스 외부에서 직접 접근할 수 없습니다.
3. 정보 은닉 구현 예시
정보 은닉을 구현하기 위해서는 주로 private
접근 제어자를 사용하여 클래스의 내부 상태를 보호합니다.
class Account {
private balance: number;
constructor(initialBalance: number) {
this.balance = initialBalance;
}
deposit(amount: number) {
this.balance += amount;
}
withdraw(amount: number) {
if (amount <= this.balance) {
this.balance -= amount;
} else {
console.log('잔액 부족');
}
}
}
위의 예시에서 balance
는 private
으로 선언되어 외부에서 직접 조작이 불가능하며, deposit
및 withdraw
메서드를 통해 안전하게 상태를 변경할 수 있습니다.
정보 은닉을 통해 클래스의 내부 구현을 보호하고 외부에서의 불필요한 접근을 방지함으로써 안전하고 견고한 코드를 작성할 수 있습니다.
이상으로 TypeScript에서의 정보 은닉과 접근 제어자를 사용한 보안적 프로그래밍에 대해 알아보았습니다.