Programming Blog

Node js란? 본문

Node js/생활 코딩 Node js

Node js란?

Go-ong 2019. 2. 3. 00:11
  • Node js란?
    - javascript Engine 기반으로 만들어진 서버 사이드 플랫폼이다.
    - 이벤트 기반(Event-driven), Non Blocking I/O모델을 사용하여 가볍고 효율적이다.
    - Node js는 웹 서버가 아닌 그저 코드를 실행할 수 있는 하나의 Javascript V8 런타임이다.
    - 웹브라우저가 아닌 서버쪽에서도 동작하는 자바스크립트로 확장되었다.
  • Node Js의 특징
    - 비동기(Non-Blocking) I/O 처리, 이벤트 위주 : Node js의 라이브러리의 모든 API는 비동기식(Non-Blocking)이다. 데이터 반환을 기다리지 않고, 다음 API를 실행하고, Node js의 이벤트 알림 메커니즘을 통해 결과값을 받아온다.
    - 빠른 속도 : 구글 크롬의 V8엔진 사용으로 빠른 코드 실행
    - 단일 쓰레드 / 뛰어난 확장성 : 이벤트 루프와 함께 단일 쓰레드 모델 사용하고, 단일 쓰레드를 사용하여 훨씬 많은 요청을 처리할 수 있다.
    - 웹 브라우저(클라이언트)에서부터 시작하여 서버쪽에서도 자바스크립트를 사용해서 완결된 애플리케이션을 만들 수 있다.
    하나의 언어로 애플리케이션을 구현할 수 있다는 효율성이 있다.

  • Node js를 효율적으로 사용하기 위한 App
    - 입출력이 잦은 App
    - 데이터 스트리밍 App
    - 실시간 데이터 처리 App
    - JSON API 기반 App
    - 싱글 페이지 App

    *반대로 CPU 사용률이 높은 어플리케이션에서는 Node js 사용을 권장하지 않는다.

  • Web Browser VS Node js
    - JavaScript는 대표적으로 language측면의 JavaScript, RunTime(동작하는 환경)측면의 JavaScript로 이루어져있는데,
    Node js부분이 RunTIme에 해당한다.

  • JavaScript와 RunTime의 관계
    js형식을 이용하여 web browser와 node js를 제어할 수 있다.
    RunTime을 제어해서 컴퓨터를 제어해야하기 때문에  Web Browser와 Node js의 기능과 뜻을 알아야 한다 
    Web Browser의 JavaScript와 Node js의 JavaScript를 이용하여 하나의 완결된 웹 애플리케이션을 만들 수 있다.

  • 서버 쪽에서의 경쟁언어
    - Python (서버)
    - Ruby
    - Php
    - Java

    * 서버 쪽에서 동작하면서 DB에 접속, 웹 페이지를 프로그래밍적으로 생산하는 것은 Node js의 경쟁 상대이다. 


'Node js > 생활 코딩 Node js' 카테고리의 다른 글

express 도입  (0) 2019.02.07
동기와 비동기 프로그래밍  (0) 2019.02.03
콜백(Callback) 함수  (0) 2019.02.03
모듈과 NPM  (0) 2019.02.03
Node js 간단한 웹 애플리케이션  (0) 2019.02.03
Comments