< Go Back

[DESIGN_PATTERN] 노출모듈 패턴

DesignPattern

노출모듈 패턴

JavaScript와 같이 private, public 접근 제어자가 없는 언어에서 접근 제어자를 만들기 위해 사용하는 패턴이다. 즉시실행 함수를 이용해 데이터를 함수 스코프 안에 저장하여 외부에서 접근할 수 없게 만든 후, 노출할 데이터만 반환하는 방식이다.

const store = (() => {
    const value = 1
    const public = {
        getValue : () => value
    }
    return public
})()

console.log(store.value)
console.log(store.getValue())
// undefined
// 1

CJS(CommonJS)가 이 방식을 사용한다.