Spring Boot

[Spring Boot] Port 8080 was already in use. 에러 해결

공대생안씨 2023. 11. 22. 16:14

스프링 부트로 웹 애플리케이션 개발 중에 아래와 같은 에러가 발생했다.

 

Port 8080 was already in use.

 

1. 에러 발생 원인

  • 말 그대로 해당 포트를 사용하는 애플리케이션이 실행 중일 때, 동일한 포트를 사용하는 애플리케이션을 중복으로 실행했을 때 발생
  • 만약 이전 애플리케이션을 종료했는데도 이러한 에러가 발생한다면 IDE 상으로는 종료되었지만 실제 프로세스는 종료되지 않은 경우에 속함

 

2. 해결 방법

  1. 8080 포트를 사용하고 있는 프로세스를 강제로 종료하는 방법
  2. 현재 애플리케이션에서 사용하는 포트를 바꾸는 방법

 

2-1. 8080 포트를 사용하고 있는 프로세스 강제 종료 (mac OS)

 

  • 터미널에서 8080 포트를 사용하고 있는 프로세스 검색
lsof -n -i -P | grep 8080

 

  • 검색된 프로세스는 다음과 같은 형태로 출력
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 31120 anchangmin 99u IPv6 0x1825b1faed1ec6e7 0t0 TCP *:8080 (LISTEN)

 

  • 검색된 프로세스 종료
kill -9 (종료하고 싶은 프로세스의 PID)

 

  • 다시 검색 => 프로세스가 종료되었음을 확인

아무 프로세스도 검색되지 않음 => 8080 포트를 사용중인 프로세스가 존재하지 않음

  

2-2. 현재 애플리케이션에서 사용하는 포트 변경

 

  • application.yml 에 다음과 같은 코드를 추가한다. (8081 포트로 변경 예시)
server:
  port: 8081

 

  • 애플리케이션을 실행해서 사용 포트 확인 => 8081 포트 사용함을 확인