Node js의 특징
(1) 비동기 IO 처리 / 이벤트 위주
Node.js의 라이브러리의 모든 API는 비동기 방식-non blocking
API가 실행되었을 때, 데이터를 반환할 때까지 기다리지 않고
다음 API를 실행
실행했던 API가 결과값을 반환 시, Node.js의 이벤트 알림
메커니즘을 통해 결과값을 수신
(2) 빠른 속도
구글의 V8 자바스크립트 엔진 사용
(3) 단일 스레드 / 뛰어난 확장성
이벤트 루프 + 단일 스레드
이벤트 루프는 서버가 멈추지 않고 반응하도록 해 줌
-> 서버의 확장성을 키워줌
-> 아파치에 비해 스레드를 한 개만 사용함으로써
더 많은 요청 처리 가능
(4) No Buffering
데이터 버퍼링 없이 데이터를 묶음으로 출력
(5) 라이선스
MIT 라이선스 적용
(6) 주 사용처
SNS나 채팅서비스에 많이 사용됨(요청이 많기 때문에)
일반서버는 이 기능을 위해서는 멀티 스레드를 써야 함
Node.js는 요청이 많거나 오래걸리는 요청이 끼어 있어도
대기 시간이 발생하지 않음
=> 개수는 많으나 크기가 작은 데이터를 실시간으로
주고받는 어플리케이션에 최적 => 실시간 챗, 주식 차트 등
(7) Node.js의 단점
모든 처리를 단일 스레드가 처리하기 때문에
코드가 CPU 연산을 많이 요구할 경우 감당하기 어려움
이미지, 비디오, 대규모 연산 등에는 절대 비권장
☆ Code
var http = require("http");
http.createServer(function(request, response){
response.writeHead(200, {"Content-Type": "text/html"});
// This is the first Node.js work을 display
response.end("<h1>This is the first Node.js work</h1>");
}).listen(10002);
console.log("This is the first Node.js work!");
'Node' 카테고리의 다른 글
NODE http 모듈 (0) | 2024.12.08 |
---|