Java 개발을 하다 보면 가끔 다음과 같은 오류 메시지를 만나게 됩니다:
Unable to open debugger port (127.0.0.1:62034): java.net.BindException "Address already in use: bind"
이 오류는 디버거가 특정 포트(여기서는 62034)를 사용하려 하지만, 해당 포트가 이미 사용 중이라는 것을 의미합니다. 보통 이런 경우 포트를 사용 중인 프로세스를 찾아 종료하거나, 애플리케이션의 포트 설정을 변경하는 등의 방법을 사용합니다.
하지만 때로는 이런 방법들이 효과가 없을 수 있습니다. 이럴 때 놀랍도록 간단한 해결책이 있습니다. 바로 Windows NAT (Network Address Translation) 드라이버를 재시작하는 것입니다.
다음 두 명령어를 관리자 권한의 명령 프롬프트에서 실행하세요:
net stop winnat
net start winnat
이 명령어는 WinNAT 서비스를 중지했다가 다시 시작합니다.
WinNAT는 Windows의 네트워크 주소 변환 서비스입니다. 이 서비스는 네트워크 포트 매핑을 관리하는데, 때때로 이 매핑 정보가 제대로 해제되지 않아 포트가 계속 사용 중인 것처럼 보일 수 있습니다.
WinNAT 서비스를 재시작하면 이런 '유령' 포트 매핑이 제거되어, 실제로는 사용 중이지 않은 포트를 다시 사용할 수 있게 됩니다.
Java 개발 시 디버거 포트 문제로 골치를 앓고 계셨다면, 이 간단한 방법을 시도해 보세요. WinNAT 서비스 재시작만으로 문제가 해결될 수 있습니다. 복잡한 문제도 때로는 의외로 간단한 해결책이 있다는 것을 기억하세요!
개발하시는 데 도움이 되셨기를 바랍니다.