이번에 진행할 Free Project에서 Module Patton으로 Module을 구현하려고 합니다.
Module : 모듈은 application’s architecture(구조)의 필수 요소이며 일반적으로 프로젝트의 코드 단위를 명확하게 분리하고 구성하는 데 도움이됩니다.
자바스크립트에서는 모듈 구현을 위한 몇가지 방법이 있습니다.
The Module pattern (모듈패턴)
Object literal notation (객체 리터럴 표기법)
AMD modules
CommonJS modules
ECMAScript Harmony modules
Module Patton(모듈 패텬)
모듈 패턴은 전통적인 소프트웨어 엔지니어링에서 클래스를 위한 private 및 public로 나뉜 캡슐화를 제공하는 방법입니다.
|
|
위 코드에서 public으로 공개된 코드를 사용하여 controller.anotherPublic();
이런식으로 budgetController의 publicTest 메소드에 접근합니다.
controller 내에서 budgetCtrl.publicTest(5);
로 하지 않고, budgetController.publicTest(5);
로도 접근이 가능하지만, 이 경우 나중에 budgetController의 이름을 바꾸게 된다면 모든 코드를 수정해야합니다.
따라서, 위처럼 매개변수로 받은 이름을 쓴다면 쉽게 수정이 가능해집니다.
IIFE (Immediately Invoked Function Expressions 즉시실행함수)
|
|
위처럼 뒤에 ()
를 붙이면 함수가 즉시 실행됩니다.
함수내부 프로퍼티, 메소드는 외부에서 접근을 못한다는 개념을 사용하여 전역을 오염시키지 않도록 하는 방법입니다.
참고 자료
Udemy - The Complete JavaScript Course
Nonblock 블로그
Learning JavaScript Design Patterns