Node.js

노드란

쿠와와 2020. 11. 29. 19:28

Node.jsⓇ는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다. (즉 자바스크립트 실행기)

 

- 서버의 역할도 수행할 수 있는 자바스크립트 런타임

- 노드로 자바스크립트로 작성된 서버를 실행할 수 있음.

- 서버 실행을 위해 필요한 http/https/http2 모듈을 제공

 

이 세상에 웹개발자가 제일 많기 때문에 가장 많이 쓰는 언어가 자바스크립트이다.

노드와 자바스크립트가 뜬 이유 -> 비동기 I/O 프로그래밍 즉 libuv 때문에

 

특성

1. 이벤트 기반

  이벤트 리스너에 콜백함수 등록 -> 시스템에서 이벤트 발생 -> 이벤트 리스너에서 등록된 콜백 함수 호출 

 

2. 논블로킹 I/O ( 비동기라고 생각해도 됨)

  오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행

  코드가 순서대로 수행되지 않을 수도 있다. ( I/O 작업이 많을 때 노드 활용성이 극대화된다. )

 

3. 프로세스 Vs 쓰레드

 노드는 멀티 스레드이다. 그러나 직접 다룰 수 있는 스레드는 하나이기 때문에 싱글 스레드라고 표현한다. 

 노드 14버전부터는 우리가 원한다면 멀티 스레드를 다룰 수 있다. 

크롬의 탭이라고 생각하면 이해하기 쉽다.

노드에서는 먼저 요청을 받고, 완료될 때 응답을 하는 형태를 취하고 있다. ( 멀티쓰레드가 너무 어려워서 노드쓰는 것 )

이상적인 것은 역시나 멀티 쓰레드이긴 하다. 

 

역활

서버로서의 노드 : 노드는 서버를 구성할 수 있게 하는 모듈을 제공 ( 노드 != 서버 )

어중간한 성능이란 것은 극한의 성능을 요구할 때 서버를 노드로 말고 다른 언어를 사용하는 것이 좋다는 것이다.

( c, c++, 러스트 등등) (머신러닝, 게임, 비트코인 등등)

 

노드 설치 

https://nodejs.org

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