Node.jsⓇ는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다. (즉 자바스크립트 실행기)
- 서버의 역할도 수행할 수 있는 자바스크립트 런타임
- 노드로 자바스크립트로 작성된 서버를 실행할 수 있음.
- 서버 실행을 위해 필요한 http/https/http2 모듈을 제공
이 세상에 웹개발자가 제일 많기 때문에 가장 많이 쓰는 언어가 자바스크립트이다.
노드와 자바스크립트가 뜬 이유 -> 비동기 I/O 프로그래밍 즉 libuv 때문에
특성
1. 이벤트 기반
이벤트 리스너에 콜백함수 등록 -> 시스템에서 이벤트 발생 -> 이벤트 리스너에서 등록된 콜백 함수 호출
2. 논블로킹 I/O ( 비동기라고 생각해도 됨)
오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행
코드가 순서대로 수행되지 않을 수도 있다. ( I/O 작업이 많을 때 노드 활용성이 극대화된다. )
3. 프로세스 Vs 쓰레드
노드는 멀티 스레드이다. 그러나 직접 다룰 수 있는 스레드는 하나이기 때문에 싱글 스레드라고 표현한다.
노드 14버전부터는 우리가 원한다면 멀티 스레드를 다룰 수 있다.
노드에서는 먼저 요청을 받고, 완료될 때 응답을 하는 형태를 취하고 있다. ( 멀티쓰레드가 너무 어려워서 노드쓰는 것 )
이상적인 것은 역시나 멀티 쓰레드이긴 하다.
역활
서버로서의 노드 : 노드는 서버를 구성할 수 있게 하는 모듈을 제공 ( 노드 != 서버 )
어중간한 성능이란 것은 극한의 성능을 요구할 때 서버를 노드로 말고 다른 언어를 사용하는 것이 좋다는 것이다.
( c, c++, 러스트 등등) (머신러닝, 게임, 비트코인 등등)
노드 설치
LTS -> 3년동안 안전하게 사용할 수 있음, 안정된 버전 ( 회사용 )
current -> 새로운 기술을 빠르게 습득할 수 있음, 최신 버전 ( 학생용 )
설치확인은
cmd 창에서 node -v써주면 된다.
'Node.js' 카테고리의 다른 글
노드 내장 알아보기 #2 (0) | 2020.12.04 |
---|---|
노드 내장 알아보기 #1 (0) | 2020.12.03 |
REPL와 모듈 (0) | 2020.12.02 |
자바스크립트 정리 (0) | 2020.12.01 |
JavaScript 실행과 문법 (0) | 2020.11.29 |