본문 바로가기

프로그래밍 /Node JS

[Nodejs]Node js 란?


Node js란?


nodejs는 서버사이드에서 실행되는 자바스크립트이다.


Web Broser 작동하는 JavaScript 와 차이

쉽게말하면Node 는 Javascript 런타임이다.!!

JavaScript는 language & RunTime(언어가 작동하는 환경) 가르킨다.그래서 언어를 작동실해하는데 RunTime이 필요하는데nodejs > RunTime 제어하는 역할을 한다.그래서!!!둘다 JavaScript 문법 기반이지만함수는 다르게 사용한다.Nodejs는 웹브라우저에서 실행되는 것이 아니기 때문에웹브라우저에서 제공하는 window,histroy,location,navigator,screen ,document 는 사용불가!!


Node 와 Web 협력 상호관계이다.
Nodejs 기능을 잘 파악구별해서 잘사용해야한다.

NodeJS 장점

1. V8 Engine 이다.

node는 구글 크롬 웹브라우저의 자바스크립트 엔진인 V8을 기반으로 자바스크립트를 사용한다.
이는 노드에 진입 장벽을 낮춰준다. 엔진 중 가장 빠른 성능을 그대로 물려 받았다.
Google V8 엔진에서 실행되기 때문에 자바스크립트를 직접 기계어로 컴파일하여
대부분 보다 빠르다.


2.Event -driven 방식

사용자가 이벤트 발생시켰을 때
입력 장치로 데이터 전송했을 때만 작동하는 방법
하나의 스레드가 모든 작업을 직접 처리하는 대신 작업을 위임하고 완료됐다는 이벤트가 발생하면 결과를 받아 처리한다
자원 (대기시간/메모리)를 계속 소비한다.


3. non - blocking (비동기)패러다임

블록킹I/O를 사용하면 스레드가 블록킹되고 스레드가 대기 상태에 있게 된다.
이는 시간과 메모리를 낭비하게 된다.
Node의 모든 I/O는 비동기로 동작하는 non - blocking I/O이다.
I/O 작업을 진행하는 동안 유저의 프로세스의 작업을 중단시키지 않는다.
non - blocking 경우 read/write 이벤트가 시작하자마자 모듈을 변환시켜 다른
작업을 준비하도록 한다
따라서
non - blockingI/O 장점 : 빠르다, 쉽다, 적은 메모리


4. Single Thread

강점일수도 있고 단점일수도 있다
특징에 가깝다.
단일스레드의 장점은 적은양의 자원으로 일을 처리할수 있다.
이벤트 기반 응용 프로그램에서 이벤트를 처리하고 오류가 난다면
싱글 스레드가 코드를 처리하면서 블록킹되지 않고 다른 작업을 처리한다.
요청 순서에 따라 결과가 돌아오지 않는다.
//예외가 발생한다면 어플리케이션 전체에 영향을!!!


Node.js 사용처

입출력이 잦은 어플리케이션데이터 스트리밍 어플리케이션JSON API 기반 어플리케이션데이터를 실시간으로 다루는 어플리케이션싱글페이지 어플리케이션


'프로그래밍 > Node JS' 카테고리의 다른 글

[Nodejs] Node Express 도입  (0) 2018.08.09