[React Native] EADDRINUSE: address already in use :::8081 포트 오류 해결 방법

npm start 명령어로 개발한 리액트 앱을 실행하려는 중 'EADDRINUSE: address already in use :::8081' 오류 메세지가 나타났습니다. 

 

 

오류 메세지

info Welcome to React Native v0.74
info Starting dev server on port 8081...
error listen EADDRINUSE: address already in use :::8081.

 

이 오류는 포트 8081 즉 해당 포트가 이미 사용 중임을 의미합니다.

이는 이전에 실행 중인 개발 서버가 아직 종료되지 않았거나, 다른 프로세스가 해당 포트를 사용 중일 때 발생합니다.

이 문제를 해결하기 위해 다음과 같은 방법을 시도할 수 있습니다.

 

 

1. 기존 서버 중지

먼저, 현재 포트 8081을 사용 중인 프로세스를 찾아서 중지해야 합니다.

 

Mac/Linux

터미널에서 포트 8081을 사용하는 프로세스를 찾고 종료하는 명령어는 다음과 같습니다.

lsof -i :8081
 

명령어 출력 예시입니다.

COMMAND      PID      USER      FD      TYPE      DEVICE SIZE/OFF      NODE      NAME
    node          12345      user      23u      IPv4           0x12345678            0t0       TCP *:8081 (LISTEN)

 

여기서 PID (프로세스 ID)를 사용하여 '12345' 프로세스를 종료하면 됩니다.

kill -9 12345

 

Windows

포트 8081을 사용하는 프로세스를 찾고 종료하는 명령어는 다음과 같습니다.

netstat -ano | findstr :8081

 

명령어 출력 예시입니다.

TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 12345

 

여기서 PID (프로세스 ID)를 사용하여 '12345' 프로세스를 종료하면 됩니다.

taskkill /PID 12345 /F

 

 

2. React Native 개발 서버 다시 시작

이제 npm start 명령어를 다시 실행합니다.

npm start
 
 

 

3. 패키지 매니저 캐시 정리

경우에 따라 패키지 매니저의 캐시를 정리하는 것이 도움이 될 수 있습니다.

npm cache clean --force yarn cache clean
yarn cache clean

 

 

4. 시스템 재부팅

모든 시도를 해도 문제가 해결되지 않는다면, 시스템을 재부팅하여 모든 프로세스를 초기화하는 것도 좋은 방법입니다.

 

 

결론

"EADDRINUSE: address already in use :::8081" 오류는 포트 충돌로 인해 발생합니다.

이 문제를 해결하기 위해 사용 중인 포트를 확인하고 종료하거나, 개발 서버를 다른 포트에서 실행하거나, 시스템을 재부팅하는 방법이 있습니다. 또한, 캐시를 정리하여 문제를 해결할 수도 있습니다. 이 방법들을 통해 문제를 해결하고 React Native 개발을 원활하게 진행할 수 있습니다.

 

위 방법들로도 문제가 해결되지 않는다면, 포트 충돌이 발생하는 원인을 더 자세히 조사해야 할 수 있습니다.

항상 최신 버전의 React Native와 관련 도구들을 사용하는 것도 좋은 방법입니다.