[JavaScript] namespace
2025. 11. 3. 17:34ㆍJavaScript
728x90
이 글에서는 JavaScript의 Namespace에 대한 개요와 구현 방식과 은닉 방안을 정리한 글 입니다.
- Namespace
- 구현 방법
- 모듈 패턴과 IIFE을 활용한 네임스페이스 은닉
Namespace
식별자(변수/함수 명 등)가 충돌하지 않도록 그룹화 하는 방법
식별자가 중복될 경우 추가적인 식별자가 필요하며, 네임스페이스는 식별자들을 그룹화해 문제를 해결할 수 있습니다. 관련된 기능과 데이터를 그룹화 할 수 있으며, 유지보수성을 향상시킬 수 있습니다.
구현 방법
JS에는 C++의 namepsace와 같은 키워드가 없으며, 주로 객체를 이용해 네임스페이스를 구현합니다.
엔티티를 전체를 포함하는 객체를 선언함으로써, 네임스페이스 처럼 사용할 수 있습니다.
const 네임스페이스명 = {
전역데이터: 값,
메서드명: (매개변수) => {
this.전역데이터;
}
}
네임스페이스명.메서드명();
네임스페이스명.전역데이터;
모듈 패턴과 IIFE을 활용한 네임스페이스 은닉
관련된 변수와 함수를 하나의 모듈로 묶어, 외부에 공개할 요소만 명시적으로 반환하는 모듈 패턴(Module Pattern)과 IIFE로 namespace에 대한 은닉성을 구현할 수 있습니다.
[ IIFE (Immediately Invoked Function Expression) ]
함수 정의와 동시에 실행이 가능한 함수
(function() { ... })();
다음과 같이 IIFE에 에서 은닉 데이터를 반환하지 않고, 메서드만 반환함으로써 네임스페이스 외부에서는 오직 메서드를 통해서만 은닉데이터에 접근할 수 있습니다.
const 네임스페이스명 = ( () => {
const 은닉데이터: 값,
return {
메서드명: (매개변수) => {
return 은닉데이터;
}
};
})();
네임스페이스명.메서드명();
네임스페이스명.전역데이터; // 접근 불가능728x90
'JavaScript' 카테고리의 다른 글
| [JavaScript] 블로킹 논블로킹, 동기 비동기 (0) | 2025.11.06 |
|---|---|
| [JavaScript] First-Class Function (0) | 2025.11.05 |
| [JavaScript] Pure Function (0) | 2025.11.05 |
| [JavaScript] Function (0) | 2025.11.05 |
| [JavaScript] 객체 (0) | 2025.11.03 |