[javascript] 전역 변수와 지역 변수를 사용한 모듈 패턴

자바스크립트의 모듈 패턴은 코드를 모듈화하고 재사용 가능한 구성 요소로 분리하기 위한 방법입니다. 전역 변수와 지역 변수를 적절히 활용하여 모듈을 작성하면 코드의 격리성과 유지보수성을 높일 수 있습니다.

전역 변수의 문제점

전역 변수는 코드 어디에서든 접근 가능한 변수입니다. 하지만 이러한 전역 변수의 남발은 다음과 같은 문제를 야기할 수 있습니다.

  1. 네이밍 충돌: 여러 모듈에서 같은 이름의 전역 변수를 사용하는 경우, 충돌이 발생하여 의도치 않은 동작이 발생할 수 있습니다.
  2. 의존성 문제: 전역 변수가 다른 전역 변수에 의존하는 경우, 순서에 따라서 동작이 달라질 수 있습니다.
  3. 암묵적인 의존성: 전역 변수를 사용하는 코드는 해당 변수의 존재를 암묵적으로 가정하고, 코드의 이해하기 어려움을 야기할 수 있습니다.

모듈 패턴의 사용

모듈 패턴을 사용하면 전역 변수를 최소화하고 모듈 내부에서만 사용되는 지역 변수를 사용할 수 있습니다. 이를 통해 위에서 언급한 문제들을 해결할 수 있습니다.

아래는 자바스크립트에서 전역 변수와 지역 변수를 사용한 모듈 패턴의 예시 코드입니다.

var MyModule = (function() {
  // 비공개 멤버 변수
  var privateVariable = 10;

  // 비공개 메소드
  function privateMethod() {
    console.log('Private method called');
  }

  // 공개 멤버 변수와 메소드를 반환하는 객체
  return {
    publicVariable: 20,
    publicMethod: function() {
      console.log('Public method called');
      // 비공개 멤버에 접근 가능
      console.log(privateVariable);
      privateMethod();
    }
  };
})();

// 모듈 사용 예시
console.log(MyModule.publicVariable);  // 20
MyModule.publicMethod();  // Private method called

위의 코드에서 MyModule은 모듈 객체를 담는 변수입니다. 모듈 객체 내부에는 비공개 멤버 변수와 메소드, 그리고 공개 멤버 변수와 메소드가 존재합니다. 비공개 멤버는 모듈 내부에서만 접근 가능하고, 공개 멤버는 외부에서 접근할 수 있습니다.

이렇게 모듈 패턴을 사용하면 전역 변수의 남용을 방지하고 코드의 격리성을 유지할 수 있습니다.

결론

전역 변수와 지역 변수를 적절히 활용하는 모듈 패턴은 코드의 구성을 개선하고 재사용성을 높여줍니다. 모듈 패턴을 사용하여 코드를 작성할 때는 비공개 멤버와 공개 멤버를 구분하여 모듈의 인터페이스를 명확하게 정의하는 것이 중요합니다. 이를 통해 코드의 유지보수성을 높이고 의존성 문제를 줄일 수 있습니다.