문제 상황

: 작성한 코드를 테스트 해보기 위해서 실행을 눌렀다. 그리고 다음과 같은 에러가 발생했다. 코드에 문법적인 에러가 존재하지 않았다. 작성한 코드나 서로 간의 연관관계, 빌드 설정 등을 확인해보았지만 문제를 파악할 수 없었다. 

 

원인

: Web server failed to start. Port 8080 was already in use. 이러한 설명이 콘솔창에 뜬 것을 확인할 수 있었다. 정리하자면 8080포트를 이미 사용하고 있기 때문에 웹 서버를 시작할 수 없다는 내용이다. 포트를 중복해서 사용하면 먼저 실행된 프로그램만 작동하고 후에 실행하려는 프로그램은 에러가 발생한다.

 

해결책

: 현재 해당 포트를 사용하여 실행 중인 프로세스를 확인하고 의도치 않게 실행중인 프로세스가 있다면 종료시킨 후 원하는 프로그램을 실행한다. 

1. CMD 창을 연다.

2. 8080 포트를 사용하는 프로세스를 식별한다.

     - 명령어: netstat -ano | findstr :<port>

     - 결과는 하단의 이미지와 같은데 좌측부터 프로토콜/ 로컬 주소/ 외부 주소/ 상태/ PID를 의미한다.

3. 8080포트를 사용하는 프로세스가 있으면 종료시킨다.

     - 명령어: taskkill  /pid <PID> /f

     - taskkill은 프로세스 종료를 의미한다.

          - Not Responding, 데몬 프로세스 등은 단순 종료 요청으로 종료되지 않을 수 있다.

     - /f는 강제 종료를 의미한다.

          - Not Responding 프로세스나 , 데몬 프로세스 등은 단순 종료 요청으로 종료되지 않을 수 있기 때문에 강제 종료 시킨다.

4. 동일 포트를 사용하는 프로세스가 없으면 프로그램을 실행시킨다. 

 

'CS' 카테고리의 다른 글

버그를 꼼꼼하게 잡아내자, 효과적인 테스트 코드 작성하기  (0) 2025.05.27
Clean Code, SOLID  (0) 2025.05.07

+ Recent posts