ESLint 규칙 중 no-restricted-globals 란?
프로그래밍을 할 때 자바스크립트를 사용한다면, 코드의 품질과 유지보수성을 향상시키기 위해 ESLint 같은 린팅 도구를 활용할 수 있습니다. 특히, 특정 변수가 전역 스코프에서 사용되는 것을 방지하기 위해 ESLint의 no-restricted-globals
규칙이 유용합니다. 이 블로그 글에서는 no-restricted-globals
규칙에 대해 자세히 알아봅니다.
목차
- no-restricted-globals 규칙이란?
- 전역 변수 사용의 문제점
- no-restricted-globals 규칙의 적용 방법
- 규칙 설정 예시
- 코드 품질 향상을 위한 다른 ESLint 규칙
- 결론
no-restricted-globals 규칙이란?
no-restricted-globals
규칙은 ESLint에서 전역 변수 사용을 제한할 때 사용하는 규칙입니다. 이 규칙은 개발자가 특정 전역 변수를 사용하지 않도록 강제할 수 있으며, 이를 통해 코드의 안정성과 일관성을 높일 수 있습니다. 전역 변수가 많아질수록 코드 간의 의존성이 증가하고, 예기치 못한 버그가 발생할 가능성도 높아집니다.
전역 변수 사용의 문제점
전역 변수는 프로그램 전체에서 접근할 수 있기 때문에 변수 값이 어디서 어떻게 변경되는지 추적하기 어렵습니다. 이는 다음과 같은 문제를 야기할 수 있습니다:
-
네임스페이스 오염: 여러 변수와 함수가 전역 스코프에 존재할 경우 충돌이 발생할 가능성이 커집니다.
-
디버깅 어려움: 전역 변수의 값 변화가 프로그램 내 어디에서든 일어날 수 있어 디버깅이 힘들어질 수 있습니다.
-
유지보수성 저하: 전역 변수는 여러 파일에 걸쳐 영향을 미칠 수 있으므로, 유지보수가 어려워질 수 있습니다.
no-restricted-globals 규칙의 적용 방법
ESLint에서 no-restricted-globals
규칙을 사용하여 특정 전역 변수의 사용을 제한할 수 있습니다. 예를 들어, event
라는 전역 객체는 종종 이벤트 핸들러 내에서 로컬 변수로 사용되는 경우가 많으므로, 혼동을 피하기 위해 이를 제한할 수 있습니다.
사용하려면 .eslintrc
파일에 다음과 같은 설정을 추가합니다:
{
"rules": {
"no-restricted-globals": ["error", "event", "name"]
}
}
위 예시는 event
및 name
이라는 전역 변수가 사용될 때 lint 오류를 발생시킵니다. 이처럼 사용하고자 하는 전역 변수를 규칙에 추가하여 오류를 방지할 수 있습니다.
규칙 설정 예시
no-restricted-globals
규칙 설정 예시는 다음과 같습니다. 이 설정은 isFinite
와 isNaN
도 제한합니다. 이는 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 규칙과 함께 적극적으로 활용하여 더 나은 코드를 작성해보세요!