[typescript] private 접근 제어자와 객체 생성

TypeScript에서 private 접근 제어자를 사용하여 클래스 멤버를 외부에서 접근할 수 없게 할 수 있습니다. 이는 정보은닉과 캡슐화를 지원하여 안전한 코드를 작성하는 데 도움이 됩니다. 이번 게시물에서는 private 접근 제어자를 사용하여 객체를 생성하고 다루는 방법에 대해 알아보겠습니다.

클래스와 private 멤버

먼저, private 접근 제어자를 사용하여 클래스 내부의 멤버를 선언하는 방법에 대해 알아보겠습니다. 아래 예제는 private 접근 제어자를 사용하여 name이라는 private 속성을 가진 Person 클래스를 정의하는 예제입니다.

class Person {
    private name: string;

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

    public greet() {
        console.log(`Hello, my name is ${this.name}.`);
    }
}

let person = new Person('Alice');
person.greet(); // 외부에서는 greet 메서드에 접근 가능하지만, name 속성에는 접근할 수 없음

위의 코드에서 name 속성은 private로 선언되어 외부에서 직접 접근할 수 없습니다.

객체 생성과 private 멤버 접근

private 접근 제어자를 사용한 private 속성에 접근하는 방법에 대해 알아보겠습니다. 일반적으로 객체 생성 후 메서드를 통해 private 속성에 접근하는 방식이 사용됩니다. 아래 예제는 private 접근 제어자를 사용한 private 속성에 접근하여 값을 변경하는 예제입니다.

class Person {
    private name: string;

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

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

let person = new Person('Alice');
console.log(person.name); // 오류: 'name' 속성은 private이므로 외부에서 접근할 수 없음
person.changeName('Bob'); // private 속성에 간접적으로 접근하여 값을 변경

위의 예제에서 changeName 메서드를 사용하여 private 속성에 간접적으로 접근하여 값을 변경할 수 있습니다.

private 접근 제어자는 클래스 내부에서만 접근 가능하도록 제한하여 정보은닉과 캡슐화를 강화하는 데 도움이 됩니다.

결론

private 접근 제어자를 사용하여 클래스 내의 정보를 보호하고 안전한 코드를 작성할 수 있습니다. 객체 생성 후에는 간접적인 접근 방법을 통해 private 속성을 다룰 수 있으며, 이는 코드의 안정성을 높이는 데 도움이 됩니다.

이상으로 private 접근 제어자와 객체 생성에 대한 내용을 마치도록 하겠습니다. 감사합니다.

공식 TypeScript 문서를 참고하시면 더 자세한 정보를 얻을 수 있습니다.