노출모듈(revealing module) 패턴이란?
즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴을 말합니다.
즉시 실행 함수란?
함수를 정의하자마자 바로 호출하는 함수. 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지에 사용한다.
자바스크립트는 private나 public 같은 접근 제어자가 존재하지 않고 전역 범위에서 스크립트가 실행됩니다. 그렇기 때문에 노출모듈 패턴을 통해 접근 제어자를 구현하기도 합니다.
장점
- 개발자에게 더 깔끔한 접근 방법을 제공
- private 데이터 제공
- 전역 변수를 덜 더럽힘
- 클로저를 통해 함수와 변수를 지역화
- 스크립트 문법이 더 일관성 있음
- 명시적으로 public 메소드와 변수를 제공해 명시성을 높임
단점
- private 메소드 접근할 방법이 없음
- private 메소드에 대해 함수 확장하는데 어려움이 있음
- private 메소드를 참조하는 public 메소드를 수정하기 어려움