1. 노출식 모듈 패턴
- JS의 주요 문제점 중 하나는 네임스페이스가 없다는 것이다. 모든 스크립트가 전여검위에서 실행되며, 내부 애플리케이션 코드나 종속성 라이브러리는 기능을 노출시키는 동시에 스코프를 오염시킬 수 있다.
- 전역범위에 의존하는 것은 위험한 작업이며, 애플리케이션이 확장됨에 따라 개별적인 기능 구현에 의존해야 하는 상황이 발생한다.
- 이러한 문제를 해결하기 위한 보편적인 기법이 노출식 모듈 패턴 (revealing module pattern)
const myModyule = (() => {
const privateFoo = () => { }
const privateBar = []
const exprted = {
publicFoo : () => { }
publicBar : () => { }
}
return exported
} ()
console.log(myModule);
console.log(myModule.privateFoo, myModule.privateBar);
- 이러한 형식을 가지며, 이 패턴은 자기 호출 함수를 사용한다 -> 즉시 실행 함수 표현
- 해당 패턴은 정보의 은닉을 유지하고, 공개될 API를 내보내기 위해 이러한 특성을 잘 활용한다.
2. 서브스택 패턴
- module.exports 변수 전체를 함수로 재할당하는 것
- 장점 : 모듈에 대한 명확한 진입점을 제공하는 단일 기능을 제공, 그에 대한 이해와 사용을 단순화함
- 최소한의 노출 원리에 맞아 떨어짐
module.exports = (message) => {
console.log(`info : ${message}`);
}
-> 해당 모듈의 사용법은 아래와 같다
const logger = require('./logger');
logger('This is an informational message');
logger.vberbose('This is a verbose messsage');
- 이 패턴은 단일 기능에 중점을 두도록 하며, 내부 형태에 대한 가시성을 줄이며 보조적인 사항을 익스포트 된 함수의 속성으로 노출하여 단일 진입점을 제공한다.
- 모든 모듈은 단일 기능에 대한 책임을 져야하며, 책임은 모듈에 의해 완전히 캡슐화 되어야 한다. '
출처 : Node.js 디자인패턴 바이블
'NodeJs' 카테고리의 다른 글
| Node.js 디자인패턴, 순차실행 (0) | 2023.11.16 |
|---|---|
| Node.js 디자인패턴, 콜백규칙적용 - 빠른반환원칙 (0) | 2023.11.15 |
| NodeJS Sqlite3연동, errno :14 , code :SQLITE_CANTOPEN 오류 (0) | 2023.07.20 |
| Javascript async/await (0) | 2023.07.18 |
| Javascript Promise 이해하기 (0) | 2023.07.18 |
댓글