본문 바로가기
Web/Node.js

[Node.js] Node.js 개념

by IsBerry 2018. 12. 25.
반응형


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