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와 관련 도구들을 사용하는 것도 좋은 방법입니다.