반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[node.js] Node.js 란? 본문

dev-log/server

[node.js] Node.js 란?

개발하는 오식이 2022. 4. 11. 12:01
반응형

Node.js

: javascript 런타임

 

Javascript

: html을 위해 만들어진 언어. html 조작을 위해 만들어진 언어

 (html? 웹 페이지에 글/그림을 넣는 언어)

 

js의 해석은 브라우저(chrome, ie, firefox 등)가 담당한다. 

브라우저마다의 js언어 해석 엔진이 포함되어있고, 그 종류는 브라우저의 종류마다 다 다르다.

chrome - V8, ie - Chakra, firefox - SpiderMonkey

 

그 중 탁월한 기능의 V8이 단독 출시가 된 것이 Node.js!

 

Node.js

: 브라우저 내 뿐만 아니라 외부 환경에서도 js를 실행할 수 있게 도와준다. 

(브라우저 없이 터미널과 같은 환경에서도 가능)

서버를 쉽게 만들 수 있다.

Non-Blocking I/O의 특징이 있다 (하단에 설명) 

 

Node.js를 사용하는 이유?

- Non-Blocking 덕분에 채팅 / SNS에 자주 사용

- 코드가 매우 짧고 쉬워서 빠른 개발 가능

- 웹에서 주로 사용

 

*이미지 처리에서는 별로임 (관련 라이브러리가 별로 없음)

 -> C, Python등을 사용해야 함

 

 

Non-Blocking

예시로, 영화 예매 서버 개발했다고 한다는 가정 

4명의 대기자가 줄을 서있다

 

1인 / 단체 200명 / 1인 / 1인     ㅣ 카운터

 

1. 일반 언어로 개발한 서버일 떄

- 요청이 들어온 순서대로 작업. 

- 1명씩 예매해줄 때에 아무 문제 x 

- 200명 자리 예매해주세요 요청 시 200장 발급하는 동안 서버가 멈춤 (대기시간 생김)

: 버거운 요청을 받았을 시, 다른 요청을 받지 못한다. -> 200명 예매 다음 손님은 오래 기다려야함

 

2. node.js 사용 시

- 요청을 우선 모두 받음

- 먼저 완료된 요청부터 처리

- 오래걸리는 작업을 마지막으로 보내줌 (200명 티켓을 가장 마지막에 처리)

- 200명 티켓을 처리 중에도 요청을 받아 먼저 처리해줌

- 그러면 대기시간이 줄어들고, 서버가 멈추는 일이 발생하지 않음

 

이러한 특징을 Non-Blocking I/O 라고 한다!

 

 

Node.js를 쓰기 좋은 곳

SNS, 채팅 서비스 (특징 : 요청이 아주 많음)

- 요청이 많거나 오래걸리는 요청이 있어도 멈추거나 요청 대기시간이 없음

 

 

 

 

 

 

 

출처 : 코딩애플 유튜브

링크 : https://www.youtube.com/watch?v=pTm5E3jcOeY

반응형
Comments