ノード(Node.js)-1週目


ノード定義:JavaScriptランタイム
- javascript로 만든 프로그램들을 실행할 수 있게 해준다.
- 런타임 : 특정 언어로 만든 프로그램을 실행할 수 있는 환경
- Chrome의 V8엔진

ノードの内部構造
- V8과 libuv를 포함한다.
- V8엔진 : 오픈소스 JavaScript 엔진, JavaScript 엔진이란 JavaScript 코드를 실행하는
          프로그램 또는 인터프리터
- libuv : 이벤트 기반, 비동기/non-blocking 입출력 모델을 구현한 라이브러리
ノードのプロパティ
  • イベントに基づく:
  • イベント発生時に予め保存されたタスクを実行
  • ブロックなしIO:前のタスクの完了を待たずに次のタスクを実行
    ex)
  • だけで、I/O、圧縮、暗号化などの操作が可能です.
  • 単一スレッド:指定されたことは同時に1つしか処理できません.
    ->ブロックが発生した場合、残りのすべてのタスクが待機します.これは非効率です.
    ->したがって、非ブロックモードを採用し、一部のコードをバックグラウンドで実行します.
    ->I/O関連コードではなく、完了時にリクエストに応答するリクエストを先に受信します.シングルスレッド、ブロック
    モデルと同じです.

  • ノードの役割
  • サーバの利用:ノードはサーバを構成可能なモジュール
  • を提供する.
  • サーバ外付け:JavaScript実行時、用途はサーバに限定されません.Web、モバイル、デスクトップアプリケーションにも使用できます.
    ex)Webフレームワーク:React、Angular、Vue、Metor
    ex)移動Webフレームワーク:React Native、Ionic、NativeScript
    ex)デスクトップ開発ツール:Electron