[typescript] public 접근 제어자와 데이터 캡슐화

TypeScript에서는 접근 제어자를 사용하여 클래스 멤버에 대한 접근을 제어할 수 있습니다. 이 중 하나인 public 접근 제어자는 클래스 멤버를 외부에서도 접근할 수 있도록 허용합니다. 이번 글에서는 public 접근 제어자의 활용과 데이터 캡슐화에 대해 알아보겠습니다.

public 접근 제어자란?

public 접근 제어자는 TypeScript 클래스의 기본 접근 제어자이며, 별도로 지정하지 않아도 자동으로 적용됩니다. 따라서 클래스 내부 및 외부에서 모두 해당 멤버에 접근할 수 있습니다.

예를 들어, 다음과 같이 public 접근 제어자를 사용하여 클래스 속성을 정의할 수 있습니다.

class Person {
    public name: string;

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

위의 예제에서 name 속성은 public 접근 제어자로 선언되었기 때문에 클래스 외부에서도 접근할 수 있습니다.

데이터 캡슐화

데이터 캡슐화는 객체 지향 프로그래밍의 기본 원칙 중 하나로, 객체 내부의 상태를 외부에서 직접 조작할 수 없도록 보호하는 것을 말합니다. public 접근 제어자를 적절하게 활용하면 데이터 캡슐화를 구현할 수 있습니다.

예를 들어, 다음과 같이 public 접근 제어자를 사용하여 데이터 캡슐화를 적용할 수 있습니다.

class BankAccount {
    public 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("Insufficient funds");
        }
    }
}

위의 예제에서 balance 속성은 public으로 선언되었지만, depositwithdraw 메서드를 통해 간접적으로만 조작할 수 있기 때문에 데이터 캡슐화가 유지됩니다.

결론

public 접근 제어자는 TypeScript에서 클래스 멤버에 대한 외부 접근을 허용하는 데 사용됩니다. 이를 효과적으로 활용하여 데이터 캡슐화를 구현할 수 있으며, 객체 지향 프로그래밍의 기본 개념을 적절히 적용하는 데 도움이 됩니다.

참고 문헌: TypeScript Handbook - Public

이상으로 TypeScript에서 public 접근 제어자와 데이터 캡슐화에 대해 알아보았습니다. 감사합니다.