ESLint 규칙 중 no-new-func 란?
목차
no-new-func 규칙이란?
ESLint의 no-new-func 규칙은 JavaScript에서 Function
생성자를 통해 함수를 생성하는 것을 금지하는 규칙입니다. 이 규칙은 보안과 성능 문제를 줄이기 위해 매우 중요한 역할을 합니다. Function
생성자는 런타임 시 새로운 함수를 생성하며, 함수를 문자열로 인코딩하여 컴파일합니다.
왜 no-new-func 규칙이 중요한가?
Function 생성자는 사용자가 외부로부터 받은 문자열을 실행할 수 있게 하므로, XSS(Cross-Site Scripting) 같은 보안 취약점을 유발할 수 있습니다. 뿐만 아니라, 모듈화된 코드에서는 스코프 문제로 성능에 부정적인 영향을 미칠 수 있습니다. 이러한 문제를 해결하고 코드를 더 안전하고 효율적으로 유지하기 위해 no-new-func 규칙을 준수해야 합니다.
올바른 사용 예와 잘못된 사용 예
잘못된 사용 예
// 나쁜 예시: Function 생성자를 사용하여 새로운 함수 생성
const adder = new Function('a', 'b', 'return a + b');
올바른 사용 예
// 좋은 예시: 일반적인 함수 선언 사용
function adder(a, b) {
return a + b;
}
위의 올바른 사용 예에서는 일반적인 함수 선언을 통해 안전하고 성능이 좋은 코드를 작성할 수 있습니다. 자세한 정보는 ESLint 공식 문서에서 확인하세요.
ESLint에서 no-new-func 규칙 설정
no-new-func 규칙은 ESLint의 기본 규칙으로 설정되어 있으며, 아래와 같이 .eslintrc 파일에서 설정할 수 있습니다.
{
"rules": {
"no-new-func": "error"
}
}
이 설정을 통해 Function 생성자 사용을 자동으로 검출하고, 오류로 처리하여 문제를 사전에 방지할 수 있습니다.
결론
no-new-func 규칙은 JavaScript 코드에서 Function 생성자를 사용함으로써 발생할 수 있는 보안과 성능 문제를 방지하는 중요한 규칙입니다. 이 규칙을 통해 더 안전하고 효율적인 코드를 작성할 수 있으며, 많은 라이브러리와 큰 코드베이스에서도 문제를 줄일 수 있습니다. 코드를 작성할 때는 항상 no-new-func 규칙을 고려하여, 안전한 코드를 유지하세요.