티스토리 뷰

LANGUAGE/NODE.JS

[NODE.JS] BASIC THINGS

진심스테이크 2019. 7. 19. 10:42

Node.js

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 


 

서버 : 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램

클라이언트 : 요청을 보내는 주체

- 브라우저, 데스크톱 프로그램, 모바일 앱, 다른 서버 요청을 보내는 서버 등등

 

 

 


 

비동기 이벤트 주도 JavaScript 런타임으로써

Node는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었습니다. "

 

런타임이란, 특정 언어로 만든 프로그램들을 실행할 수 있는 환경

Node.js란, 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 해주는 것

 

노드의 내부 구조

- libuv 라이브러리 : 이벤트 기반, 논블로킹 I/O 모델을 구현

- V8과 libuv는 C와 C++로 구현되어 있고, 우리가 코딩한 자바스크립트 코드는 노드가 알아서 연결해주므로 몰라도 됨

 

 


 

서버로서의 노드의 장단점

 

장점

- 멀티 스레드 방식에 비해 컴퓨터 자원을 적게 사용

- I/O 작업이 많은 서버로 적합

- 멀티 스레드 방식보다 쉬움

- 웹 서버가 내장되어 있음

- 자바스크립트를 사용

- JSON 형식과 호환하기 쉬움

 

단점

- 싱글 스레드라서 CPU 코어를 하나만 사용

- CPU 작업이 많은 서버로는 부적합

- 하나뿐인 스레드가 에러로 인해 멈추지 않도록 관리해야 함 -> 서버 전체가 멈추기 때문

- 서버 규모가 커졌을 때 서버를 관리하기 어려움 -> 웹 서버를 노드 서버와 연결해야함

- 어중간한 성능

 

'LANGUAGE > NODE.JS' 카테고리의 다른 글

[NODE.JS] KOA  (0) 2019.08.20
[NODE.JS] MODULE - 모듈  (0) 2019.07.21
[NODE.JS] RERL  (0) 2019.07.21
[NODE.JS] SINGLE THREAD  (0) 2019.07.19
[NODE.JS] EVENT LOOP - 이벤트 루프  (0) 2019.07.19
댓글