본문 바로가기
온라인 멘토와 함께하는 공부/JS

[NodeJS] 서버 실행에 따른 오류 해결

by 열공노년 2024. 5. 25.
반응형

서버 실행에 따른 오류

다음 이미지는 서버를 다시 시작하려고 할 때 포트 3000이 이미 사용 중이라는 오류가 발생한 경우입니다. 이 오류는 EADDRINUSE 오류 코드로 나타납니다.

서버 재실행에서 발생한 오류

이 문제를 해결하려면 다음 단계를 따라 실행 중인 프로세스를 종료하거나 다른 포트를 사용하도록 서버를 설정해야 합니다.

1. 현재 사용 중인 포트 확인 및 프로세스 종료

먼저, 포트 3000을 사용 중인 프로세스를 찾아 종료합니다.

Windows에서 포트 사용 중인 프로세스 찾기 및 종료

  1. 명령 프롬프트(CMD)나 PowerShell을 열고 다음 명령을 실행하여 포트 3000을 사용 중인 프로세스를 찾습니다.
  2. netstat -ano | findstr :3000
  3. 결과로 나타나는 PID (프로세스 ID)를 확인합니다. 예를 들어, 56416라는 PID가 나타났다면, 이를 종료합니다.
  4. 다음 명령을 실행하여 해당 PID의 프로세스를 종료합니다.
  5. taskkill /PID 56416 /F

Linux/Mac에서 포트 사용 중인 프로세스 찾기 및 종료

  1. 터미널을 열고 다음 명령을 실행하여 포트 3000을 사용 중인 프로세스를 찾습니다.
  2. lsof -i :3000
  3. 결과로 나타나는 PID를 확인합니다. 예를 들어, 1234라는 PID가 나타났다면, 이를 종료합니다.
  4. 다음 명령을 실행하여 해당 PID의 프로세스를 종료합니다.
  5. kill -9 1234

'taskkill'을 통해 프로세스를 죽임(Windows에서)

2. 서버 코드에서 다른 포트 사용

포트를 변경하여 서버를 실행할 수도 있습니다. 예를 들어, 포트 3001을 사용하도록 설정할 수 있습니다.

// 필요한 모듈을 가져옵니다.
const http = require('http');

// 서버를 생성합니다.
const server = http.createServer((req, res) => {
  // 응답 헤더 설정
  res.writeHead(200, { 'Content-Type': 'text/html' });
  // 응답 본문 작성
  res.end('<h1>Hello, World!</h1>\n');
});

// 서버를 특정 포트에서 대기시킵니다.
const PORT = 3001;  // 여기서 포트를 변경합니다.
server.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

이제 변경된 포트로 서버를 실행하면 됩니다.

요약

  1. 포트 3000을 사용 중인 프로세스를 찾아 종료합니다.
  2. 또는 서버 코드에서 다른 포트를 사용하도록 변경합니다.
  3. 서버를 다시 실행합니다.

이 과정을 통해 포트 충돌 문제를 해결하고 서버를 정상적으로 다시 실행할 수 있습니다.

반응형