Multi Developer SuHo

Node js http 모듈을 활용한 간단한 서버 구축 본문

Node.js 기록

Node js http 모듈을 활용한 간단한 서버 구축

Dreaming Developer Student 2025. 2. 24. 19:31
SMALL

안녕하세요~ 저번에는 net 모듈을 이용하여 간단한 TCP 서버를 소개해드렸습니다. 이번에는 http  모듈을 활용한 net 모듈처럼 간단한 서버를 구축해보겠습니다.

📑목차
1. http 모듈을 활용한 서버 구축
1-1. http 모듈이란?
1-2. http 모듈 VS net 모듈 차이점

1-3. 코드 실행 구조
1-4. http 모듈을 활용한 서버 구축 코드
1-5. 실행 화면

 

서론

이전에는 net 모듈을 활용한 TCP 소켓 서버를 간단하게 구현해봤습니다. 서버와 클라이언트간에 요청과 응답을 하는 3-way-handshake 방식과 클라이언트와 서버간의 논리적 연결이 끊어졌을 때는 4-way-handshkae 방식으로 처리하였습니다. 이번에는 Node js 에서 제공하는 http 모듈을 활용한 서버를 구축해보겠습니다. 본론으로 넘어가시죠

 

본론

1. http 모듈을 활용한 서버 구축 

 

1-1. http 모듈이란?

웹 서버에서 자주 사용되는 모듈로, http 프로토콜로 서버와 클라이언트를 처리한다

 

 

1-2. http 모듈 VS net 모듈 차이점

 

이전에는 net 모듈로 TCP 서버를 구축하였습니다. 그럼 http 모듈과는 어떤 차이가 있는지 살펴봅시다.

 

net 모듈  

기능 : TCP 소켓 통신

프로토콜 통신 :  바이너리 데이터 송수신

사용 목적 : 채팅 서버,  소켓 서버 

-----------------------------------------------------

http 모듈

기능 : HTTP 웹 서버, 클라이언트

프로토콜 통신 : HTTP 프로토콜

사용목적 : 웹 사이트 제공

 

 


1-3. 코드 실행 구조

  1. http 모듈을 가져와 서버를 생성하고0
  2. 포트번호를 3000번 포트로 지정
  3. 클라이언트가 http://localhost:3000으로 요청을 보냄
  4. 요청이 들어오면 서버는 요청 객체를 분석하고, 요청 객체를 사용하여 응답 객체를 생성하여 클라이언트에게 적절한 응답을 제공
  5. 서버가 res.writeHead()로 응답 헤더를 설정하고 
  6.  res.write()로 본문 내용을 클라이언트에게 전달
  7. 클라이언트는 "안녕하세요"라는 응답을 받음


1-4. http 모듈을 활용한 서버 구축 코드

// http 모듈 가져오기
const http  = require('http');


// 포트 변수 선언
const PORT = 3000;

// 서버 객체 생성
const server = http.createServer((req, res) => {
    // 첫 번째는 요청 객체
    // 두 번째는 응답 객체
    // console.log(res);
    // console.log(req);
    
    // res.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'})
    // 응답 헤더에 대한 정보를 기록
    res.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'})
    // res.write() :  본문(body)에 보여지는 부분을 나타내는 메서드
    res.write('안녕하세요')
    res.end();

});



// 클라이언트가 서버에게 요청을 보냈을 때
// listen()
// 1. 포트번호
// 2. 콜백함수
server.listen(3000,() => {
    console.log("서버 작동중...")
})



1-5. 실행화면

결론

이전에는 net 모듈을 사용했을 때는 클라이언트가 어떤 요청을 보내든 서버가 무조건 수신하는 단방향 통신으로 이루어졌습니다. 하지만 http 모듈을 사용하면 서버와 클라이언트 간의 요청과 응답을 서로 받을 수 있는 양방향 통신으로 진행된다는 것을 알 수 있게 되었습니다. 웹 서버를 구축할 때는 http 모듈을 사용하는 것이 좋다고 생각됩니다. 

LIST