티스토리 뷰

반응형

스프링 또는 스프링 부트를 이용하여 웹을 개발하다 보면, 코드상에는 오류가 없는데 실행을 하게 되면 가끔씩 포트가 이미 사용중이라는 에러 메시지를 보시게 되는 경우가 종종 있습니다. 지금와서 보면 엉첨 간단한 오류지만 처음에는 엉첨 헤맸던 것 같아서 애를 먹었던 것 같습니다. 그래서 오늘은  Port 8080 is already in use 에러가 무엇인지 그리고 이 에러에 대한 해결방법에 대해 업로드해보겠습니다.

 

✏️ Port 8080 is already in use

org.springframework.boot.web.server.PortInUseException: Port 8080 is already in use

스프링부트를 이용하여 개발한 내용을 localhost:8080에서 확인하기 위해 실행했을 때, 위와 같은 에러가 발생할 수 있습니다. 이 오류는 PortInUseException의 한 종류로, 이미 사용중인 포트번호를 사용하고 있을 때 발생하게 됩니다. 쉽게 생각해보면, 두 개의 프로젝트가 같은 url을 쓰고 있는 것이죠. 밑에서 좀 더 이 오류의 발생 원인에 대해서 알아보겠습니다.

 

✏️ 발생 원인

  1. 동일한 포트를 사용하는 어플리케이션을 번갈아가며 실행 시키는 경우 (이미 다른 하나가 실행중)
  2. 인텔리제이 상에서는 프로세스가 종료되었으나 실제 프로세스가 종료되지 않은 경우

 

✏️ 해결 방법

  1. 실행하려고 하는 어플리케이션의 실행 포트 번호를 변경합니다. 예를 들면 8081이나 8082 등등 잘 쓰이지 않는 포트번호로 사용하는 것이 좋습니다.
  2. 현재 포트를 사용하고 있는 프로세스를 종료합니다.

 

✏️ 포트 변경하기

// 자신의 파일이 .yml이라면 첫 번재 방법을, .properties라면 두 번째 방법을 사용하시면 됩니다.
// application.yml에서의 설정
spring:
	server:
  		port: 8081
        
// apllication.properties에서의 설정
spring.server.port = 8081

 

✏️ 프로세스 종료하기

1. lsof -i :8080 입력하기(만약 사용하고 있는 포트번호가 다르다면 8080대신 자신이 사용하고 있는 포트번호 입력)

lsof -i :8080 입력

2. 그러면 아래와 같은 텍스트창이 출력되는데 여기서 중요한 것은 PID번호

COMMAND   PID    USER  FD    TYPE DEVICE    SIZE/OFF   NODE NAME
java              ~~   ~~    ~~~~~          0t0        TCP~~

3. Kill -9 PID번호 입력해서 연결을 끊어주기

kill -9 PID

 

오늘은 Port 8080 is already in use 에러의 발생원인과 해결방법을 소개해드렸는데, 혹시 궁금한 점이시나 틀린 부분이 있다면 댓글 부탁드리겠습니다! 그럼 오늘 하루도 화이팅 하세요!

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함