React-Shop-App(에러노트)

조창연·2021년 10월 7일
0

zohn ahn님의 boiler-plate 강의를 듣고 추가로 shopping mall clone강의를 듣고 발생한 오류를 기록합니다.

이 강의 스택은 React,Node,MongoDB 등으로 구성되어 있습니다.

애플리케이션을 실행하고 로그아웃버튼을 누르는데 아래와 같은 오류가 생겼다.

[HPM] Error occurred while trying to proxy request /api/users/auth from localhost:3000 to http://localhost:5000 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)

위 에러는 host서버에 문제가 있을 때 발생하는 에러로

  1. npm이 활성화되지 않았을 때 npm 실행을 하거나

  2. 다른 사용자가 같은 계정으로 접속해 있을 때

  3. 단순 접속 오류 (새로고침으로 해결) 일 때 문제가 생긴다.

새로고침도 해보고 npm -v 으로 npm이 잘 있는지 확인해보고 했지만 똑같은 문제가 발생했다.

npm run dev 를 여러번 하다보니 새로운 에러가 발생했다.

[nodemon] app crashed - waiting for file changes before starting...
[1] Something is already running on port 3000.

이미 서버가 있는데 계속해서 서버가 만들어지는 문제가 생겨서 생긴 문제였다.

해결방법:

mac의 경우: 커멘드에 lsof -i :포트번호 를 입력하면 해당 포트번호 리스트들을 얻을 수 있는데 위 명령어를 실행해보니 수많은 서버가 실행되고 있었다.

lsof -i :3000(프론트서버 포트) 했더니

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 33982 cho 23u IPv4 0x6a9f5cfa49fe790f 0t0 TCP localhost:hbci->localhost:49161 (CLOSE_WAIT)
node 33982 cho 24u IPv4 0x6a9f5cfa5fd99757 0t0 TCP *:hbci (LISTEN)
node 33982 cho 26u IPv4 0x6a9f5cfa5fd9790f 0t0 TCP localhost:hbci->localhost:65535 (CLOSE_WAIT)
node 33982 cho 39u IPv4 0x6a9f5cfa5afb216f 0t0 TCP localhost:hbci->localhost:49153 (CLOSE_WAIT)
node 33982 cho 194u IPv4 0x6a9f5cfa5fda216f 0t0 TCP localhost:hbci->localhost:65514 (CLOSE_WAIT)
node 33982 cho 196u IPv4 0x6a9f5cfa4a802b87 0t0 TCP localhost:hbci->localhost:49164 (CLOSE_WAIT)

위와 같이 많은 포트가 실행되고 있었다.

lsof -i :5000(서버 포트) 도 마찬가지였다.

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 33937 cho 79u IPv6 0x6a9f5cfa4546d53f 0t0 TCP *:commplex-main (LISTEN)
node 33937 cho 81u IPv6 0x6a9f5cfa4546eebf 0t0 TCP localhost:commplex-main->localhost:49154 (ESTABLISHED)
node 33937 cho 82u IPv6 0x6a9f5cfa4546e1ff 0t0 TCP localhost:commplex-main->localhost:49156 (ESTABLISHED)
node 33937 cho 83u IPv6 0x6a9f5cfa4546b55f 0t0 TCP localhost:commplex-main->localhost:49162 (ESTABLISHED)
node 33937 cho 84u IPv6 0x6a9f5cfa4546bbbf 0t0 TCP localhost:commplex-main->localhost:49165 (ESTABLISHED)
node 33982 cho 192u IPv4 0x6a9f5cfa5b1d9757 0t0 TCP localhost:49154->localhost:commplex-main (ESTABLISHED)
node 33982 cho 193u IPv4 0x6a9f5cfa5b070d3f 0t0 TCP localhost:49162->localhost:commplex-main (ESTABLISHED)
node 33982 cho 195u IPv4 0x6a9f5cfa5b072b87 0t0 TCP localhost:49156->localhost:commplex-main (ESTABLISHED)
node 33982 cho 197u IPv4 0x6a9f5cfa5fdb216f 0t0 TCP localhost:49165->localhost:commplex-main (ESTABLISHED)

내 클라이언트 포트번호(3000) 과 서버 포트번호(5000)을 조회하고

kill -9 노드번호   ex) kill -9 34250

으로 모든 포트와 서버를 지워봤지만 같은 에러가 발생했다.

mac의 작업관리자인 활성 상태 보기에 들어갔더니 kill로 다 없애줬다 생각한
node 가 아직 남아있어 node를 다 강제종료 후 실행해봤지만 여전히
(ECONNRESET) 에러가 발생하였다.

계속 실행을 해보다보니 또 다른 에러가 발생했다.

MongooseError [MongooseServerSelectionError]: connection <monitor> to 18.138.86.201:27017 closed

몽고디비가 등록하지 않은 아이피에 대해서 막는 다는 에러였다.

해결방법:

1.mongodb site > 2.network access > 3. add Ip address > 4.다시 실행

위의 작업을 하고 다시 작업을 실행해보니 문제가 해결되었다.

이 오류를 경험해보고 느낀 점은 오타나 자잘한 문제도 있지만 서버나 네트워크와 같은 큰 문제부터 생각하고 오류를 찾아내는 연습을 해야되겠다 느꼈다.

profile
성장하고 싶은 개발자

0개의 댓글