[Design Pattern] Revealing Module Pattern

먹보·2023년 3월 8일
0

MUK_BO's Design Pattern

목록 보기
7/9
post-thumbnail

✍ Revealing Module Pattern (RM)

너무 기니...줄여서 RM이라고 부르자.

RM 패턴은 자바스크립트에서 많이 쓰이는 디자인 패턴 중 하나인데, 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴을 뜻합니다.

여기서 즉시 실행 함수란.. 함수를 정의하자마자 바로 호출하는 함수로써, 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 들에 사용한다.

한 가지 더, 자바스크립트에서는 자바와 타입스크립트와 같이 public, private, 그리고 protected라는 개념이 존재하지 않는데 RM 패턴을 구축하는 것으로 써 그 역할을 할 수 있도록 만들어 줄 수는 있다.

다음의 코드 예제를 통해 한 번 알아보자

let myModule = (function() {
  const privateVar = 'Hello World';
  
  function privateFunc() {
    console.log(privateVar);
  }
  
  function publicFunc() {
    privateFunc();
  }
  
  return {
    publicFunc: publicFunc
  };
})();

위 코드를 보면 myModule은 바로 실행되는 함수 이기 때문에, 외부에서 privateVar에 접근할 수 있는 방법이 없다.

✍ When to USE

  1. 캡슐화 작업 : RM 패턴은 우리의 코드를 캡슐화하여 자세한 내용은 비공개 처리를 할 수 있기에 발생 할 수 있는 휴먼 에러를 줄여 유지 보수에 도움을 줄 수 있다.

  2. 모듈화 : RM 패턴을 사용하는 것으로 코드를 쪼개 재사용성이 높은 모듈로 모듈화가 가능하다.

  3. 의존성 관리 : 오직 필요할 때만 적절하게 사용 할 수 있도록 모듈 사이의 의존성을 관리 할 수 있다.

profile
🍖먹은 만큼 성장하는 개발자👩‍💻

0개의 댓글