[typescript] 네임스페이스 안의 코드를 비공개로 유지하는 방법

일부 개발 상황에서는 특정한 코드를 다른 모듈과 분리하기 위해 네임스페이스를 사용하는 경우가 있습니다. 그러나 TypeScript의 네임스페이스는 기본적으로 모든 멤버를 공개하므로 외부에서 접근 가능합니다. 이 문제를 해결하기 위해, 네임스페이스 안의 코드를 비공개로 유지하는 방법을 알아보겠습니다.

1. 네임스페이스 내부 코드 숨기기

네임스페이스 내에서 코드를 숨기려면 다음과 같이 사용합니다.

namespace MyNamespace {
    let secretCode = '12345';

    export function getCode() {
        return secretCode;
    }
}

위 코드에서 secretCodeexport 키워드 없이 정의되었기 때문에, 외부에서 접근할 수 없습니다.

2. 접근 제어 한정자 활용

또 다른 방법은, 접근 제어 한정자를 사용하여 변수의 가시성을 조절할 수 있습니다.

namespace MyNamespace {
    export let publicCode = '54321';
    let secretCode = '12345';

    export function getCode() {
        return secretCode;
    }
}

3. 새로운 파일을 생성하여 코드 분리

또 하나의 방법은, 비공개로 유지하고자 하는 코드를 새로운 파일로 분리하는 것입니다. 분리된 파일 내에서는 네임스페이스를 활용하여 비공개로 유지하고자 하는 코드를 정의할 수 있습니다.

이러한 방법들을 활용하여, TypeScript의 네임스페이스 안에 있는 코드를 비공개로 유지할 수 있습니다.

이상으로 네임스페이스 안의 코드를 비공개로 유지하는 방법에 대해 살펴보았습니다.

참고 문헌: