nodejs가 뭔데?
nodejs는 javascript 런타임이다.
그럼 javascript는 뭔데?
html에 종속된 프로그래밍 언어이다. (html은 웹페이지를 위한 정적 언어이다.)
html 조작이 가능하기 때문에, js를 이용하면 웹페이지를 동적으로 구성 가능하다.
javascript를 누가 해석하냐?
브라우저가 담당한다.
브라우저에는 해석 엔진이 들어있다. 크롬은 V8이라는 해석 엔진을 사용한다.
이 V8이 매우 매우 좋아서 이걸 따로 떼어내서 만든 것이 nodejs!!!
정리하면, nodejs는 javascript를 브라우저 내에서 뿐만 아니라 다른 환경에서도 실행할 수 있는 실행 환경(해석 엔진)이다.
nodejs의 특징
영화표를 예매할 때 4명의 손님이 차례대로 2, 2, 200, 2장을 예매한다고 가정해보자.
일반 언어로 개발시에,
1, 2번째 손님은 문제가 없으나 3번째 손님이 200장을 예매한다면 그동안 4번째 손님이 200장 시간 동안 멈춘다. 다른 요청을 처리하지 못한다.
하지만 nodejs로 개발한다면,
- 일단 요청을 모두에게로부터 받고
- 처리가 빠른 순서대로 먼저 처리한다.
따라서, 4번째 손님이 200장 시간 동안 기다릴 필요가 없다.
이것을 non-blocking I/O라는 nodejs의 특성이다.
SNS, 채팅 서비스는 서비스 특성상 요청이 매우 많다. 이런 경우에 이 nodejs의 특성이 유용하다.
(물론 서버 스케일링, 멀티 쓰레딩 등으로도 해결할 수 있다.)
참조
코딩애플 https://www.youtube.com/watch?v=pTm5E3jcOeY
'Back > nodejs' 카테고리의 다른 글
우리밋 백엔드 맛보기 정리 [로그인, 회원가입 로직] (0) | 2021.08.27 |
---|---|
http로 서버 띄워보기 (express의 필요성) (0) | 2021.08.13 |
express로 서버 띄워보기 (0) | 2021.08.11 |