
강의 실습을 위해 스프링 프로젝트를 생성하고 강의 내용을 따라친 후 프로젝트를 실행해보니 web server failed to start. port 8080 was already in use 에러가 발생했다...
1. PID 조회
$ lsof -i:[포트번호]
$ netstat -ano | findstr [포트번호]
2. 프로세스 종료
$ kill [PID번호]
cmd에서 8080 포트의 PID를 조회하기 위해 netstat을 실행시켰지만 조회된 것이 없다. 사용하지 않는 포트 번호들을 확인하고 스프링 프로젝트에 적용했지만 위와 같은 에러가 발생한다.
1. window키 → hyper-v 검색 → window 기능 켜기/끄기

2. 가상 머신 플랫폼 체크되어 있으면 체크 해제

해당 옵션을 끄고 재부팅을 했더니 프로젝트가 잘 실행됐다!
전에 도커 실습한다고 설치하면서 활성화된 것 같다. 도커를 설치하면 포트 번호가 예약되어 사용할 수 없는 경우가 있다고 한다. 도커는 컨테이너화된 애플리케이션을 실행하기 위한 가상화 플랫폼으로, 포트 포워딩이나 네트워크 설정과 관련하여 일부 포트 번호를 예약하고 사용한다. 예약된 포트 번호는 netstat -ano | findstr [포트번호] 명령을 실행해도 해당 포트 번호가 감지되지 않을 수 있다. 위에서 포트 번호가 조회되지 않은 이유가 이 때문인 것 같다.
가상화 기술을 사용하기 위해 가상 머신 플랫폼을 활성화하면 어떤 설정을 해줘야 8080 포트 번호를 다시 사용할 수 있을까?
💡chatGPT를 사용해 보았다.
가상 머신 플랫폼을 사용하기 위해 체크한 후 8080 포트를 다시 사용하려면 다음과 같은 설정을 수행해야 합니다:
- 가상 머신 플랫폼(Virtual Machine Platform) 활성화: '가상 머신 플랫폼'을 다시 체크하고 활성화해야 합니다. 이를 위해 다음 단계를 따릅니다:
- Windows 10:
Windows 기능 켜기/끄기메뉴를 열기 위해제어판을 검색하여 실행합니다.- Windows 11:
Windows 설정을 열고앱을 선택한 다음,앱 및 기능을 클릭합니다.Windows 기능 켜기/끄기옵션을 찾고 클릭합니다.- 목록에서
가상 머신 플랫폼을 찾아 체크하고 확인을 클릭합니다.- 시스템을 재부팅하여 변경 사항이 적용되도록 합니다.
- Docker Desktop 설정: 만약 Docker Desktop을 사용하고 있다면, Docker Desktop 설정에서도 일부 변경이 필요할 수 있습니다.
- Docker Desktop을 실행하고 설정 메뉴로 이동합니다.
Resources섹션에서Advanced를 선택합니다.Network탭으로 이동하고Port forwarding옵션을 확인합니다.- 8080 포트가 이미 등록되어 있는 경우, 해당 항목을 제거하거나 다른 포트로 변경합니다.
위의 설정을 따라하면
가상 머신 플랫폼을 활성화하고 8080 포트를 다시 사용할 수 있게 됩니다. 도커와 같은 가상화 기술을 사용하는 경우에는 도커의 포트 매핑 설정도 확인하여 충돌을 피할 수 있도록 조정해야 합니다.
https://yeonyeon.tistory.com/272
https://github.com/docker/for-win/issues/3171
https://github.com/googlevr/gvr-unity-sdk/issues/1002