Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 전역 변수 사용을 피해야 하는 이유와 대안 방법

JavaScript에서 전역 변수는 왜 위험할까?

JavaScript 코드를 작성할 때 전역 변수(Global Variable)의 사용은 피하거나 최소화하는 것이 좋습니다. 그 이유는 전역 변수가 다른 스크립트에 의해 쉽게 덮어써질 수 있기 때문입니다.

전역 변수 자체가 나쁜 것은 아니며, 보안상의 심각한 문제를 일으키는 요소도 아닙니다. 하지만 전역 변수가 다른 변수의 값을 실수로 덮어쓰는 상황이 발생하면 큰 문제가 됩니다.

유지보수 관점에서의 문제점

전역 변수를 많이 사용하는 코드는 유지보수 측면에서도 비효율적입니다. 예를 들어, 프로젝트 규모가 커진 후 동일한 이름을 가진 변수를 새로 추가하게 되면 어떻게 될까요? 기존 값이 의도치 않게 덮어써지면서 찾기 어려운 심각한 버그들이 발생할 수 있습니다.

전역 변수를 피하는 방법

1. 지역 변수와 클로저(Closure) 활용

전역 변수 사용을 피하는 가장 기본적인 방법은 지역 변수(Local Variable)를 사용하고, 코드를 클로저(Closure)로 감싸는 것입니다. 이렇게 하면 변수의 유효 범위(Scope)가 함수 내부로 한정되어 외부 간섭을 차단할 수 있습니다.

2. 객체 리터럴로 변수 감싸기

또 다른 방법은 여러 변수를 하나의 JSON 형태(객체 리터럴)로 묶어서 관리하는 것입니다. 아래 예시를 살펴보겠습니다.

var wrapperDemo = {
    x: 5,
    y: function(myObj){
      // 함수 로직 작성
    }
};

위 코드처럼 변수들을 하나의 객체인 wrapperDemo 안에 넣으면, 전역 공간에는 wrapperDemo라는 단 하나의 이름만 노출됩니다.

객체 내부의 속성 x에 접근하고 싶다면 다음과 같이 호출하면 됩니다.

wrapperDemo.x

정리

  • 전역 변수는 다른 스크립트에 의해 쉽게 덮어써질 수 있습니다.
  • 전역 변수가 많아지면 유지보수가 어려워지고 버그 발생 가능성이 높아집니다.
  • 지역 변수, 클로저, 객체 리터럴을 활용하여 전역 변수 사용을 최소화하세요.