
주니어 개발자라면 누구나 한 번쯤 겪는 '포트 충돌 에러' 해결법입니다.
가장 흔하지만, 막상 닥치면 명령어가 기억 안 나서 검색하게 되는 주제죠.
스프링 부트를 비정상적으로 종료하거나 재시작할 때 자주 마주치는 에러입니다.
매번 검색하기 귀찮아서 제 블로그에 박제 !
IntelliJ에서 신나게 코드를 짜고 Run을 눌렀는데,
아래와 같은 빨간 에러가 뜨면서 서버가 켜지지 않습니다.
Bash
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
원인 : 이전에 실행했던 서버가 제대로 종료되지 않고
좀비 프로세스처럼 살아있어서, 8080 포트를 계속 붙잡고 있기 때문입니다.
터미널(Terminal)을 열고, OS에 맞는 명령어를 입력해서 좀비 프로세스를 죽여줍니다.
Mac / Linux
Bash
lsof -i :8080
위 명령어를 치면 아래처럼 나옵니다. 여기서 PID 숫자를 기억하세요. (예시 : 12345)

Bash
kill -9 [PID]
예시: kill -9 12345
Windows (PowerShell)
PowerShell
netstat -ano | findstr :8080
맨 오른쪽 끝에 있는 숫자가 PID입니다.
PowerShell
taskkill /PID [PID] /F
(예시 : taskkill /PID 12345 /F)
교훈: 서버를 끌 때는 가급적 IDE의 Stop 버튼을 눌러서 우아하게 종료하는 습관을 들이자.
에러 메시지를 읽어보면 답이 있다 !
당황하지 말고 로그를 읽자!