NodeJSとは?


1.ノードの定義

  • ノードはChrome V 8 JavaScriptエンジンによって構築されたJavaScript(HTMLに属するブラウザから)ランタイム(エフェクタ)である.

  • ノードはサーバでもJavaScriptエンジンでもない
    ただし,サーバの役割も実行可能なJavaScriptランタイムである.
    ノードが表示されると、HTMLなしでJavaScriptが実行されます.
    サーバを実行するために必要なhttp/http/http/http/http 2モジュールを提供します.
    =JavaScriptは言語、ノードはランタイム!(JDKなど)
     *(Typescript 런타임은 Deno)*
     
  • *JavaScriptの知識が不足している場合のチェック(ko.javascript.info)
    言語をマスターするには文法とプログラミングの思考が必要で、実際にコードをマスターするのが正しい答えです.
    2.ノードの内部構造
  • javascriptの内部はCまたはC+→生産性の低下によりjavascriptとなる.
  • libuv非同期I/O単一スレッドは非同期モードの利点を有する.(マルチスレッドJavaより初心者の方が使いやすい)
  • 3.ノードフィーチャー
    -1.イベントベース
    クリック、ネットワーク、タイマー、コールバックなど.
    -2.非ブロックI/O
    バックグラウンドで長い時間を要する関数を送信し、次のコードを先に実行させ、それから長い時間を要する関数を実行することを指します.
  • ノードは、ブロックであり、同期であり、非同期であり、非ブロックである.
  • ノードでは同期が困難です.
  • 非ブロック方式では、一部のコード(I/O操作:ファイルシステムアクセス、ネットワーク要求、圧縮、暗号化)もバックグラウンドで並列に実行できます.
  • I/Oが多い場合、ノード利用率が最大となります.
  • -3.プロセスVSスレッド

  • ≪プロセス|Process|emdw≫:オペレーティング・システムは、割り当てられたオペレーティング・ユニット、プロセス間でリソースを共有しません.
    (クロムウィンドウのタブがたくさんあるように)

  • スレッド:プロセス内で実行されるタスクのユニット、親プロセス、リソース共有.
  • -ノードは単一スレッドではありません.マルチスレッドです.1つのノードを実行すると、複数のスレッドを迂回できますが、1つのスレッドしか制御できません.(残りのスレッドは同時に戻る準備ができています.)
    -ノードは、マルチスレッドではなくマルチプロセスを主に使用します.
    -ノードは14バージョンからマルチスレッドを使用できます.
    -4.シングルスレッド
    -代わりに非ブロックモードを採用し、バックグラウンド(他のプロセス)でいくつかのコード(I/O)を実行できます.
    -I/O関連コードでない場合、シングルスレッド、ブロックモードと同じ
    -スレッドの使用率を向上させることが最も重要であり、不足を補うためにマルチプロセッサを使用することができる.
  • 店員(スレッド)複数のチェーン店(ノードフロー)(マルチフロー)を作成する
  • -5.マルチスレッドモデルとの比較
    -単一スレッドモデルは、エラーが処理できない場合に停止します.
    -マルチスレッドモデルは、エラーが発生したときに新しいスレッドを作成して克服します.
    *ただし、ノードのキーは、単一スレッドを効率的に使用する方法です.
    4.ノードの役割
    -1.サーバとしてのノード

  • ノードはサーバではありませんが、ノードはサーバを構成できるモジュールです.

  • ノードサーバの長所と短所はJavaScriptの長所と短所とほぼ似ている.
    利点)マルチスレッド方式に比べて、使用するコンピュータリソースが少ない.
    I/O密集型サーバーに適しています.
    マルチスレッド方式よりも簡単です.
    Webサーバを内蔵.
    JavaScriptを使用します.
    JSON形式との互換性が容易です.(php、c#などの変換が必要で面倒)
    欠点)シングルスレッドCPUコアは1つしか使用していない.
    CPUタスクが多いサーバには不適切です.(画像更新、暗号化、アルゴリズム等)
    停止しないようにスレッドを管理する必要があります.
    サーバの規模が大きくなると、サーバの管理が困難になります.(推奨C++)
    性能がちょうどよい.△しかし、他の言語も大体違います.

  • Netflix、Nasa、LinkedIn、Uberなどのサーバでプライマリサーバまたはサブサーバとして使用されます.
  • -2.サーバ以外のノード
  • JavaScript実行時であるため、用途はサーバに限定されない.
  • は、Webアプリケーション、モバイルアプリケーション、およびデスクトップアプリケーションにも使用できます.