더북(TheBook)

한 번에 여러 서버를 실행할 수도 있습니다. createServer를 원하는 만큼 호출하면 됩니다.

server1-2.js

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.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(8081, () => { // 서버 연결
    console.log('8081번 포트에서 서버 대기 중입니다!');
  });

각각 localhost:8080과 localhost:8081 주소로 서버에 접속할 수 있습니다. 이때 포트 번호가 달라야 한다는 점에 주의하세요. 포트 번호가 같으면 EADDRINUSE 에러가 발생합니다. 단, 실무에서 이런 식으로 서버를 여러 개 띄우는 일은 드뭅니다.

res.writeres.end에 일일이 HTML을 적는 것은 비효율적이므로 미리 HTML 파일을 만들어두는 것이 바람직합니다. 그 HTML 파일은 fs 모듈로 읽어서 전송할 수 있습니다. 다음 예제를 통해 배워보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.