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