HANCOM AI ACAMEMY/수업 및 플젝

Node.js : 4월 1일

c'est sunny 2025. 4. 1.
'해당 포트가 사용중이라 띄울 수가 없다?' → 프로세스 종료하기 중요

 

 

실습1

const http = require("http");

http
  .createServer((req, res) => {
    res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
    res.write("<h1>Hello Node!</h1>");
    res.end("<p>Hello Server!</p>");
  })
  .listen(8080, () => {
    console.log("8080번 포트에서 서버 대기중입니다!");
  });

 

http://localhost:8080 접속하면

 

 

실습2

const http = require("http");

http
  .createServer((req, res) => {
    res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
    res.write("<h1>Hello Node 8080</h1>");
    res.end("<p>Hello Server!</p>");
  })
  .listen(8080, () => {
    console.log("8080번 포트에서 서버 대기중입니다!");
  });

http
  .createServer((req, res) => {
    res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
    res.write("<h1>Hello Node 8081</h1>");
    res.end("<p>Hello Server!</p>");
  })
  .listen(8081, () => {
    console.log("8081번 포트에서 서버 대기중입니다!");
  });

 

1️⃣ 처음 코드 실행시 EARRINUSE 오류 발생

C:\hancom_nodejs>node ex.js
node:events:496
      throw er; // Unhandled 'error' event
      ^
Error: listen EADDRINUSE: address already in use :::8080

 

2️⃣ 8080 포트 닫으려고 했는데 맥 명령어 입력해서 못알아먹음

C:\hancom_nodejs>lsof -i :8080
'lsof'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

 

3️⃣ 내 프로세스 번호 찾으려고 제대로 된 명령어로 검색 

C:\hancom_nodejs>netstat -ano | findstr :8080
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       5584
  TCP    [::]:8080              [::]:0                 LISTENING       5584

 

4️⃣ 포트번호 입력해서 오류 ㅋ
C:\hancom_nodejs>taskkill /PID 8080 /F
오류: 프로세스 "8080"을(를) 찾을 수 없습니다.

 

5️⃣ 드디어 포트(프로세스) 종료
C:\hancom_nodejs>taskkill /PID 5584 /F
성공: 프로세스(PID 5584)가 종료되었습니다.

 

6️⃣ 코드 실행 성공
C:\hancom_nodejs>node ex.js
8080번 포트에서 서버 대기중입니다!
8081번 포트에서 서버 대기중입니다!

 

 

실습3

const http = require('http'); 

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
  res.write('<h1>Hello World</h1>');
  res.end('<p>Hello Server</p>');
})
    .listen(8080, () => {
        console.log('8080번 포트에서 서버 대기중입니다!');
    });


const server2 = http.createServer((req, res) => {
        res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
        res.write('<h1>Hello World3000</h1>');
        res.end('<p>Hello Server</p>');
      })
          .listen(3000, () => {
              console.log('3000번 포트에서 서버 대기중입니다!');
          });

- 생성된 서버 객체를 변수에 담아서 재사용할 수 있어. (예: server.close() 같은 메서드를 사용할 수 있음)

- server, server2처럼 별도의 변수에 각각 http.createServer()를 할당하고, .listen()을 호출하는 방식

- 객체 지향적인 방식.

 

 

과제

내 RDS랑 연동되는 메모 프로그램 만들어서 내 EC2에 배포하기

 

문제 1) EC2상에 Node.js를 설치하지 않아서 헤맸음

문제 2) 강사님의 코드 살짝 변형만 했는데 axios를 쓰는지 몰랐고, 이에 필요한 패키지를 EC2 폴더에 설치하지 않아서 헤맸음

문제 3) ctrl+c가 프로그램 종료인지 몰라서 계속 코드 복붙할 때 쓰다가 서버 종료해버림

 

조금 변경해서 나는 죄수 명단을 만들어봤음ㅋ

'HANCOM AI ACAMEMY > 수업 및 플젝' 카테고리의 다른 글

헷갈려서 정리하는 pandas (1)  (0) 2025.04.16
Python : 4월 10일  (0) 2025.04.10
Node.js : 3월 31일  (0) 2025.03.31
SQL : 3월 24일  (0) 2025.03.24
SQL : 3월 21일  (0) 2025.03.21

댓글