웹 개발
개발 중 포트 충돌이 나면 이렇게 확인하자
로컬에서 여러 서버를 띄울 때 포트 충돌로 막힐 때가 있습니다. 빠르게 파악하고 해결하는 방법을 정리했습니다.
로컬 개발할 때 "EADDRINUSE" 에러가 뜨는 순간은 답답하다. 포트가 이미 점유되어 있다는 뜻인데, 어느 프로세스가 그 포트를 쓰고 있는지 알아야 해결할 수 있다.
문제를 정확히 파악
"포트 3000이 이미 사용 중"이라는 에러가 나면, 먼저 어떤 포트인지, 정말로 필요한 포트인지 확인한다. 프로젝트 설정에서 다른 포트로 바꿀 수 있는지 본다.
설정 확인
프로젝트의 설정 파일(package.json, next.config.js 등)에서 포트를 어떻게 설정했는지 본다. 환경 변수로 오버라이드할 수 있는지 확인한다.
npm run build
빌드를 먼저 해서 문제가 코드에 있는지, 런타임에만 있는지 구분한다.
로컬에서만 이런 상황이 반복된다면
로컬과 운영의 차이를 인식해야 한다. 로컬에서는 여러 포트를 한 번에 띄워야 할 수도 있지만, 운영에서는 다를 수 있다.
작게 변경해보기
포트 번호를 임시로 바꿔서 테스트해본다. 혹은 기존 포트에서 실행 중인 프로세스를 종료할 수도 있다. 한 가지만 변경해서 문제가 해결되는지 본다.
수정 후 확인
같은 조건에서 다시 실행해서 에러가 안 나는지 확인한다. 포트가 정상적으로 할당되었고, 예상한 서버가 떴는지 본다.
결과가 바뀐 이유를 설정이나 로그로 설명할 수 있으면 충분히 정리된 것이다. 다음에 같은 문제가 나올 때를 대비해 어떻게 했는지 기록해둔다.