ESLint 규칙 중 no-restricted-globals 란?

ESLint 규칙 중 no-restricted-globals 란?

프로그래밍을 할 때 자바스크립트를 사용한다면, 코드의 품질과 유지보수성을 향상시키기 위해 ESLint 같은 린팅 도구를 활용할 수 있습니다. 특히, 특정 변수가 전역 스코프에서 사용되는 것을 방지하기 위해 ESLint의 no-restricted-globals 규칙이 유용합니다. 이 블로그 글에서는 no-restricted-globals 규칙에 대해 자세히 알아봅니다.

목차

  1. no-restricted-globals 규칙이란?
  2. 전역 변수 사용의 문제점
  3. no-restricted-globals 규칙의 적용 방법
  4. 규칙 설정 예시
  5. 코드 품질 향상을 위한 다른 ESLint 규칙
  6. 결론

no-restricted-globals 규칙이란?

no-restricted-globals 규칙은 ESLint에서 전역 변수 사용을 제한할 때 사용하는 규칙입니다. 이 규칙은 개발자가 특정 전역 변수를 사용하지 않도록 강제할 수 있으며, 이를 통해 코드의 안정성과 일관성을 높일 수 있습니다. 전역 변수가 많아질수록 코드 간의 의존성이 증가하고, 예기치 못한 버그가 발생할 가능성도 높아집니다.

전역 변수 사용의 문제점

전역 변수는 프로그램 전체에서 접근할 수 있기 때문에 변수 값이 어디서 어떻게 변경되는지 추적하기 어렵습니다. 이는 다음과 같은 문제를 야기할 수 있습니다:

  1. 네임스페이스 오염: 여러 변수와 함수가 전역 스코프에 존재할 경우 충돌이 발생할 가능성이 커집니다.

  2. 디버깅 어려움: 전역 변수의 값 변화가 프로그램 내 어디에서든 일어날 수 있어 디버깅이 힘들어질 수 있습니다.

  3. 유지보수성 저하: 전역 변수는 여러 파일에 걸쳐 영향을 미칠 수 있으므로, 유지보수가 어려워질 수 있습니다.

no-restricted-globals 규칙의 적용 방법

ESLint에서 no-restricted-globals 규칙을 사용하여 특정 전역 변수의 사용을 제한할 수 있습니다. 예를 들어, event라는 전역 객체는 종종 이벤트 핸들러 내에서 로컬 변수로 사용되는 경우가 많으므로, 혼동을 피하기 위해 이를 제한할 수 있습니다.

사용하려면 .eslintrc 파일에 다음과 같은 설정을 추가합니다:

{
  "rules": {
    "no-restricted-globals": ["error", "event", "name"]
  }
}

위 예시는 eventname이라는 전역 변수가 사용될 때 lint 오류를 발생시킵니다. 이처럼 사용하고자 하는 전역 변수를 규칙에 추가하여 오류를 방지할 수 있습니다.

규칙 설정 예시

no-restricted-globals 규칙 설정 예시는 다음과 같습니다. 이 설정은 isFiniteisNaN도 제한합니다. 이는 JavaScript에서 기본 제공하는 전역 함수지만, 다소 모호할 수 있어 사용을 제한할 수 있습니다:

{
  "rules": {
    "no-restricted-globals": [
      "error",
      {
        "name": "isFinite",
        "message": "Use Number.isFinite instead of isFinite"
      },
      {
        "name": "isNaN",
        "message": "Use Number.isNaN instead of isNaN"
      }
    ]
  }
}

코드 품질 향상을 위한 다른 ESLint 규칙

no-restricted-globals 외에도 ESLint는 다양한 규칙을 통해 코드 품질을 개선하도록 돕습니다. 예를 들면:

  • for-direction: for-direction 규칙for 반복문에서 반복 방향이 올바르게 지정되었는지 확인하여 잘못된 무한 루프를 방지하는 데 도움을 줍니다.
  • no-undef: 선언되지 않은 변수의 사용을 방지하여 코드의 오류를 줄입니다.
  • no-unused-vars: 사용되지 않는 변수를 제거하여 코드 클린업을 도와줍니다.

이러한 규칙들을 적절하게 활용하면 버그 가능성을 줄이고, 코드의 가독성과 유지보수성을 강화할 수 있습니다.

결론

ESLint의 no-restricted-globals 규칙은 프로그램에서 불필요하거나 사용하지 말아야 할 전역 변수를 제한하여 코드의 안정성을 높이는 데 중요한 역할을 합니다. 이와 같은 규칙을 활용함으로써 JavaScript 코드에서 발생할 수 있는 일반적인 실수를 예방하고, 코드 품질을 크게 향상시킬 수 있습니다. 다양한 ESLint 규칙과 함께 적극적으로 활용하여 더 나은 코드를 작성해보세요!

Leave a Comment