EADDRINUSE: port 3000 is already in use 해결
Error: listen EADDRINUSE: address already in use :::3000
증상
npm run dev 또는 서버 실행 시 다음 오류로 서버가 뜨지 않습니다.
Error: listen EADDRINUSE: address already in use :::3000
원인
지정한 포트(예: 3000)를 다른 프로세스가 이미 점유하고 있습니다. 보통 이전에 종료되지 않고 남은 개발 서버이거나, 같은 포트를 쓰는 다른 앱입니다.
해결
1) 포트를 점유한 프로세스 찾아 종료
macOS / Linux
lsof -i :3000 # PID 확인
kill -9 <PID> # 종료
Windows (PowerShell / CMD)
netstat -ano | findstr :3000 # 마지막 열이 PID
taskkill /PID <PID> /F
2) 다른 포트로 실행
Next.js:
next dev -p 3001
환경 변수로 지정:
PORT=3001 npm run dev
3) 좀비 Node 프로세스 일괄 정리
# macOS / Linux
pkill -f node
자주 겪는다면
package.json의dev스크립트 포트를 팀에서 안 겹치는 값으로 고정해 두면 편합니다(이 프로젝트는 3003 사용).