오식랜드
[node.js] Node.js 란? 본문
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
'dev-log > server' 카테고리의 다른 글
[node.js] 경로에 따라 html파일 보내주기 (0) | 2022.04.11 |
---|---|
[node.js] nodemon으로 서버 재실행 자동화하기 (0) | 2022.04.11 |
[node.js] node.js 서버 열기 (0) | 2022.04.11 |
[node.js] Node.js와 Express 설치하기 (0) | 2022.04.11 |
[back-end] 클라이언트와 서버 (0) | 2022.04.11 |