개인 프로젝트를 진행하다 보면, 종종 create-react-app을 사용하여 React 애플리케이션을 생성하게 됩니다. 하지만 최근에 이 과정에서 npm audit를 실행했을 때, 다수의 취약점 경고가 발생하여 많은 시간을 소모했습니다. 이러한 문제를 겪는 개발자들이 많아, 해결 방법을 공유하고자 합니다.
문제 개요
개인 프로젝트를 시작하면서 create-react-app을 실행했을 때, npm audit에서 심각한 취약점이 발견되었습니다. 올해 초에 개인 프로젝트를 진행할 때는 이러한 문제를 겪지 않았는데, 여러 번의 Node.js 재설치와 node_modules 삭제 후에도 문제가 계속되었습니다. react-scripts를 여러 번 재설치하고, yarn과 npm을 모두 삭제 후 재설치, 그리고 여러 번의 시스템 재부팅을 시도했지만 여전히 문제가 해결되지 않아 스트레스를 받던 중, 간단한 해결책을 찾게 되었습니다.
npm audit의 본질
npm audit은 기본적으로 Node.js 애플리케이션을 위한 기능입니다. 그러나 create-react-app은 단순한 빌드 도구로, 두 가지는 개념적으로 맞지 않습니다. 따라서 npm audit에서 발견되는 취약점이 실제로는 프론트엔드 개발에는 큰 문제가 되지 않는다는 것을 알게 되었습니다. 이는 React 앱을 만들 때 정적 세팅을 위한 것이기 때문에, npm audit의 경고를 무시할 수 있습니다.
해결 방법
그러나 패키지를 설치할 때마다 계속해서 경고 메시지가 뜨는 것은 불편합니다. 이를 해결하기 위해 package.json 파일을 수정하여 아래와 같이 설정할 수 있습니다.
package.json 수정
json
{
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"audit": "npm audit --production" // 추가
}
}
이렇게 수정한 후 npm audit --production 명령어를 실행하면, 모든 취약점이 사라진 것을 확인할 수 있습니다. 다만, 여전히 npm audit 명령어를 실행하면 취약점 경고가 뜨는 것은 어쩔 수 없는 점입니다.
임시방편
결론적으로, npm audit은 Node.js 애플리케이션을 위한 기능으로, React 애플리케이션에는 크게 영향을 미치지 않습니다. 하지만 경고 메시지를 없애고 싶다면 package.json 파일을 적절히 수정하여 사용하시면 됩니다.
자주 묻는 질문
질문1: npm audit의 취약점 경고를 무시해도 괜찮은가요?
답변: create-react-app에서 발생하는 npm audit의 취약점 경고는 프론트엔드 개발에 큰 영향을 미치지 않으므로, 무시해도 괜찮습니다.
질문2: package.json을 수정하는 방법은 어떤가요?
답변: package.json의 스크립트 부분에 npm audit --production을 추가하면, 해당 명령어를 통해 취약점을 확인할 수 있습니다.
질문3: npm audit을 통해 어떤 정보를 얻을 수 있나요?
답변: npm audit은 의존성의 취약점 정보를 제공하여, 보안 문제를 사전에 인지할 수 있게 도와줍니다.
질문4: react-scripts의 취약점은 어떻게 처리하나요?
답변: react-scripts의 취약점 경고는 프론트엔드 도구의 특성상 크게 문제되지 않으므로, 경고를 무시하는 것이 일반적입니다.
질문5: Node.js를 재설치해야 할 경우 어떤 절차를 따르나요?
답변: Node.js를 재설치할 경우, 먼저 기존 버전을 완전히 제거한 후, 최신 버전을 다운로드하여 설치하는 것이 좋습니다.