CSㅣ디자인 패턴 - 노출모듈 패턴

휘Bin·2023년 9월 10일
0
post-thumbnail

노출모듈 패턴

'노출모듈 패턴(revealing module pattern)'즉시 실행 함수를 통해 private, public 같은 '접근 제어자'를 만드는 패턴을 뜻한다. 자바스크립트는 private나 public 같은 접근 제어자가 존재하지 않고, 전역 범위에서 스크립트가 실행된다. 그렇기 때문에 노출모듈 패턴을 통해 public, private 접근 제어자를 구현하기도 한다.

예시 코드를 보면 아래와 같다.

const hwibin = (() => {
	const a = 1
    const b = () => 2
    const public = {
    	c : 2,
        d : () => 3
    }
    return public
}) ()

console.log(hwibin)
console.log(hwibin.a)

// {c:2, d:[Function: d]}
// undefined

위 코드를 조금 설명하면,
a와 b는 다른 모듈에서 사용할 수 없는 변수나 함수이며 private 범위를 가진다.
c와 d는 다른 모듈에서 사용할 수 있는 변수나 함수이면서 public 범위를 가진다.
참고로 위에 설명한 노출모듈 패턴을 기반으로 만든 자바스크립트 모듈 방식으로 CJS(CommonJS)모듈 방식이 있다.

  • public
    : 클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능한 범위
  • protected
    : 클래스에 정의된 함수에서 접근 가능, 자식 클래스에서 접근 가능하지만, 외부 클래스에서는 접근 불가능한 범위
  • private
    : 클래스에 정의된 함수에서 접근 가능하지만, 자식 클래스와 외부 클래스에서 접근 불가능한 범위
  • 즉시 실행 함수
    : 함수를 정의하자마자 바로 호출하는 함수, 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 등에 사용한다.
profile
One-step, one-step, steadily growing developer

0개의 댓글

관련 채용 정보