Node.js

Node.js 이해하기, http 모듈로 서버 만들기

selonjulie 2022. 6. 13. 15:07

Node.js란?

Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.

 

런타임: 특정 언어로 만든 프로그램들을 실행할 수 있는 환경

Node.js: JavaScript 실행기

 

노드는 서버 애플리케이션을 실행하는데 가장 많이 사용됨

  • 서버: 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램
  • 역할: 클라이언트의 요청에 대해 응답함 
    • 클라이언트: 요청을 보내는 주체
      • 브라우저, 데스크톱 프로그램, 모바일 앱 ..

 

노드의 특징

  • 싱글 스레드
  • 논블로킹 I/O
  • 사용하기 적합한 환경: 개수는 많지만 크기는 작은 데이터를 실시간으로 주고 받을때
    • 실시간 채팅 어플리케이션, 주식차트, JSON데이터 제공하는 

 

http 모듈로 서버 만들기

  • 클라이언트  --요청--> 서버
  •                   <--응답--
  • 요청과 응답은 이벤트 방식, 이벤트 리스너를 등록해야함
const http = require('http');

http.createServer((req, res) => {
//어떻게 응답할지
});
  • http 모듈에 createServer 메서드 존재.
    • 인수로 요청req에 대한 콜백 함수를 넣을 수 있음
    • 요청이 들어올 때마다 콜백 함수 실행 (콜백 함수 안에 응답res 적응면 됨) 
  • 응답 및 서버 연결
    • res.writeHead: 응답에 대한 정보 기록
    • res.write: 첫 번째 인수는 클라이언트로 보낼 데이터
    • res.end: 응답을 종료하는 메서드
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번 포트에서 서버 대기 중');
});