OS/WINDOW

바이브코딩하다 토큰 떨어져서 직접 npm run dev 했더니 (Windows 삽질)

붕어,짐 2026. 6. 20. 19:56
728x90

 

 

AI한테 "서버 올려줘" 하고 사는 날이 길어지면, 어느 날 토큰이 똑 떨어진다. 그날따라 직접 서버를 올려야 할 일이 생긴다(하필). 늘 시키기만 했지 내가 칠 일은 없었는데, 막상 npm run dev를 쳤더니 안 된다. 그 삽질을 적어둔다.

1. 첫 번째 벽 — PowerShell이 npm을 막음

프로젝트 폴더에서 그냥 쳤다.

PS C:\Users\me\Documents\myproject> npm run dev
npm : 이 시스템에서 스크립트를 실행할 수 없으므로 ... npm.ps1 파일을 로드할 수 없습니다.
    + FullyQualifiedErrorId : UnauthorizedAccess

PowerShell 실행 정책이 npm.ps1 스크립트 실행을 막은 거다. 알고 보니 npm은 실행 파일이 세 개다.

  • npm : Git Bash 같은 데서 실행
  • npm.cmd : cmd 배치 파일 → PowerShell 정책과 무관
  • npm.ps1 : PowerShell 스크립트 → 정책에 걸림 (이게 막힌 거)

PowerShell에서 그냥 npm이라고 치면 npm.ps1이 선택돼서 막힌다. 그래서 .cmd를 직접 붙였다.

npm.cmd run dev

npm.cmd는 꼼수가 아니라 원래 있는 정식 입구다(배치 파일이라 정책을 안 거친다). 매번 붙이기 싫으면 정책을 한 번만 풀면 된다.

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

2. 두 번째 벽 — 포트가 이미 쓰는 중

npm.cmd로 넘겼더니 이번엔 이거.

Error: listen EADDRINUSE: address already in use :::3000

EADDRINUSE = "그 포트 이미 누가 쓰고 있음". 범인은 보통 앞에서 안 끈 dev 서버다(나였다). 켜둔 터미널을 그대로 두고 새 창에서 또 켜면 이렇게 된다.

그래서 결국 — 포트 잡은 놈을 찾아서 킬했다.

netstat -ano | findstr :3000   # 맨 끝 숫자가 PID
taskkill /PID <PID> /F

그리고 다시 올리니 떴다(드디어).

한 줄 정리

PowerShell에서 npm이 막히면 npm.cmd로, 포트가 막히면(EADDRINUSE) 이전 서버를 kill하면 된다.

끝.

늘 "올려줘"만 하다가 직접 해보니, 이런 거 하나는 알아두는 게 마음이 편하더라.

 

728x90
LIST