오늘 React 프로젝트를 진행하다가 예상치 못한 터미널 문제로 한참을 헤맸다. npm run dev를 실행하려는데 자꾸 "npm 용어가 인식되지 않습니다"라는 오류가 떴다. 처음에는 단순히 오타인 줄 알았지만, 명령어를 다시 확인해봐도 문제가 없었다.
알고 보니 원인은 Node.js가 설치되지 않았거나 환경변수에 제대로 등록되지 않은 것이었다. Node.js를 새로 설치하고 "Add to PATH" 옵션을 체크한 뒤 PowerShell을 재시작했다. 이제 되겠지 싶어서 다시 npm -v를 입력했더니 이번엔 다른 오류가 나타났다.
"이 시스템에서 스크립트를 실행할 수 없으므로 npm.ps1 파일을 로드할 수 없습니다"라는 메시지였다. Node.js는 설치됐는데 PowerShell의 보안 정책 때문에 npm 스크립트 실행이 차단되고 있었던 것이다. 일반 CMD 창에서는 문제없이 동작하는데, VS Code의 통합 터미널에서만 유독 이 오류가 발생했다.
처음에는 실행 정책을 변경하는 명령어(Set-ExecutionPolicy)를 찾아봤지만, 매번 권한 설정을 건드리는 게 번거롭게 느껴졌다. 그래서 더 간단한 방법을 선택했다. VS Code에서 기본 터미널 프로필을 PowerShell에서 Command Prompt로 변경하는 것이었다. 기존 터미널을 닫고 새로 열자 이번엔 모든 명령어가 정상적으로 작동했다.
결국 문제는 PowerShell의 보안 정책이었다. PowerShell은 악성 스크립트 실행을 방지하기 위해 기본적으로 외부 스크립트 실행을 차단하는데, npm이 바로 이 스크립트 파일(.ps1) 형태로 동작하기 때문에 막혔던 것이다. 반면 CMD는 이런 보안 제한이 없어서 .cmd 파일을 자유롭게 실행할 수 있었다.
이번 일을 통해 단순히 명령어가 안 된다고 해서 코드나 설치 문제만 의심할 게 아니라, 실행 환경 자체의 보안 정책도 체크해야 한다는 걸 배웠다.
'-- 오늘 있었던 개발 일기' 카테고리의 다른 글
| 오늘의 개발 문제 : useState 초기값 설정 (0) | 2025.11.28 |
|---|---|
| 오늘의 개발 문제 : React props 화면에 아무것도 안 보인다... (0) | 2025.11.26 |
| 오늘의 개발 문제 : 더미데이터 (0) | 2025.11.19 |
| 오늘의 개발 문제 : 초기 로직을 점검하고 수정하는 습관이 필요 (0) | 2025.11.18 |
| 오늘의 개발 문제 : 정렬기준을 다시 만들자 (0) | 2025.11.17 |