EEALL@ONCE
🔦노출모듈패턴이 뭔데? 본문
728x90
노출 모듈 패턴(Revealing Module Pattern)은 JavaScript의 디자인 패턴 중 하나로, 모듈화된 코드를 작성하는 데 사용됩니다. 이 패턴은 즉시 실행 함수 표현식(IIFE)를 사용하여 데이터의 은닉성과 캡슐화를 제공합니다. 주요 특징은 다음과 같습니다:
- 은닉성(Encapsulation): 모듈 내부의 변수와 함수는 기본적으로 비공개 상태이며, 외부에서 접근할 수 없습니다.
- 공개 인터페이스(Exposure): 외부에서 사용할 수 있는 함수나 변수만을 선택적으로 공개합니다.
- 구조: 모듈은 즉시 실행 함수로 구성되며, 내부 함수 및 변수를 포함합니다. 공개할 멤버는 반환 객체에 포함시킵니다
var myModule = (function() {
// 비공개 변수와 함수
var privateVar = "I am private";
var privateFunction = function() {
console.log(privateVar);
};
// 공개될 부분을 객체 리터럴로 반환
return {
publicFunction: function() {
privateFunction();
}
};
})();
// 사용
myModule.publicFunction(); // 출력: "I am private"
그림에는 '내 모듈'이라고 쓰여진 마법 상자가 있습니다. 이 상자 안에는 '비공개 부분'으로 표시된 기어와 도구들이 있지만, 바깥에서는 볼 수 없어요. 상자에는 '공개 인터페이스'라고 적힌 작은 창문이 있는데, 여기서는 바깥에서 접근할 수 있는 레버만 보여집니다. 상자 밖에는 한 캐릭터가 레버를 사용하는 모습이 있어요. 이를 통해 노출 모듈 패턴에서는 모듈의 특정 부분만 외부에서 사용할 수 있다는 것을 보여줍니다.
🧐 즉시 실행 함수란?
즉시 실행 함수(Immediately Invoked Function Expression, IIFE)는 자바스크립트에서 즉시 호출되고 실행되는 함수입니다. 이런 함수는 선언과 동시에 단 한 번 실행되며, 주로 변수의 스코프를 제한하여 전역 네임스페이스를 오염시키지 않기 위해 사용됩니다.
즉시 실행 함수는 다음과 같은 형태를 가집니다:
(function() {
// 여기에 코드를 작성합니다.
console.log("이 함수는 즉시 실행됩니다.");
})();
이 구조에서 함수는 괄호 () 안에 정의되고, 바깥쪽의 또 다른 괄호 쌍에 의해 즉시 호출됩니다. 이 방식으로 함수를 정의하면, 함수 내의 변수들은 함수 외부로 노출되지 않아 외부에서 접근할 수 없습니다. 이는 모듈 패턴이나 개인 정보 보호와 같은 경우에 유용하게 사용됩니다.
즉시 실행 함수를 통해서, private /public 처럼 접근 제어자를 만드는 패턴이 노출모듈 패턴이다.
728x90
'분류없음지식🔦' 카테고리의 다른 글
🔦 프로그래밍 패러다임 (0) | 2023.12.20 |
---|---|
🔦MVVM (Model-View-ViewModel) 패턴이 뭔데? (1) | 2023.12.20 |
🔦이터레이터(iterator)가 뭔데? +이터레이터 패턴 (1) | 2023.12.19 |
🔦DNS 가 뭔데? (0) | 2023.12.14 |
🔦ORIGIN(오리진)이 뭔데? (0) | 2023.12.14 |