Node.js 개념
Node.js란?
: 확장성 있는 네트워크 어플리케이션(서버)을 위해 만들어진 JavaScript기반 소프트웨어 플랫폼
JavaScript를 서버에서도 사용할 수 있도록 설계된 서버사이드 플랫폼
Chrome V8 JavaScript Engine으로 빌드된 JavaScript 런타임
* 서버사이드 (Server-side) : 네트워크의 한 방식인 클라이언트-서버 구조에서 서버 쪽에서 행해지는 처리
특징
1. 이벤트 기반, Non-Blocking I/O모델을 사용
: 가볍고 효율적이다.
* Non-Blocking I/O : Blocking 방식의 비효율성을 극복하고자 만들어진 것
Read/Write이벤트가 시작하면 모듈을 변환시켜 다른 작업을 하도록 준비상태가 됨.
즉, I/O작업을 진행하는동안 프로세스의 작업을 중단시키지 않음.
-> Blocking방식보다 빠르고 메모리도 덜 차지하게 됨.
* Blocking I/O : Read/Write이벤트가 발생하면 이벤트가 끝날때까지 해당 모듈을 점유.
즉, 대기상태가 되었다가 I/O작업이 끝난 후 프로세스가 실행됨. 다른일을 못함
2. Google Chrome V8 JS Engine 사용
: JavaScript의 빠른 속도 + V8 Engine의 월등한 속도 -> 매우 빠름
3. NPM (Node Packaged Modelues)
: Node.js로 만들어진 모듈을 인터넷에서 받아서 설치해주는 패키지 매니저
오픈소스 저장소로 Node.js라이브러리 설치, 업데이트, 제거가 간단해짐.
4. 웹서버의 역할을 할 수 있도록하는 내장 라이브러리 제공
: 별도의 소프트웨어 없이 HTTP 웹서버로 실행 가능
Apache같은 웹서버보다 훨씬 많은 요청을 처리 가능
장점
- 동적 페이지 콘텐츠 생성 용이
- 입출력이 잦은 어플리케이션, 데이터 스트리밍, 데이터 실시간으로 다루는 어플리케이션에 용이
- 서버에서 파일을 사용 가능
- 양식 데이터를 수집할 수 있다.
'Web > Node.js' 카테고리의 다른 글
[Node.js] Node.js 설치 (0) | 2018.12.25 |
---|