皆さんは、Node.jsについてどんなことを知っていますか?
「jsをブラウザ外でも使えるようにするものでしょ?」
「ライブラリ?、どんなことができるかは知らないよ!」
こんな言葉が聞こえてきそうです。
私も実際そうでしたw
今回は、Node.jsについて薄っぺらい知識しかない私がNode.jsについてより深く学習しました。
内側でどのようなことが行われているのか。また、Node.jsの特徴からどんな分野に適しているかなどをまとめてみましたので、復習や読み物として読んでいただけたらと思います!
2部構成にしていきますね(^^)
Node.js、何者??
まず大前提として、Node.jsが何者なのかというところを見ていきましょう!
JavaScriptは、ブラウザ上で動かすプログラミング言語ですよね!
一方、PHPやPythonといったプログラミング言語は、自分のパソコン上で動かすことができます。
では、JavaScriptを自分のパソコン上で動かす方法はあるのでしょうか?
そこで登場するのが、Node.jsです!
Node.jsとは、PythonやPHPと同じようにパソコン上でjavascriptを動かすための環境のことなんです。
JavaScriptをパソコン上で動かして、何か良いことがあるのか?
ではNode.jsのニュアンスを掴んだ上で、一つの疑問が浮上しました。
なぜJavaScript(以下JS)をパソコン上で動かす必要があるの?
V8エンジンというものが関係してくるのですが、V8エンジンはJSを超高速で動かせるエンジンなのです。
「この超高速エンジンを使ってパソコン上でプログラミングできないか?」となり、出来上がったのがNode.jsです。
V8エンジンを使って高速の処理をしたいから、Node.jsが作られたのですね!
Node.jsにはどんな特徴があるのか?
もちろん、V8エンジンだけがNode.jsのメリットではありません。
非同期処理を同時進行できるという超絶嬉しいポイントがあるのです!!
JavaScriptは、一つの処理しか実行できないという特性があります。
これをシングルスレッドというのですが、いくら高速なエンジンを積んでいても複数の処理を同時進行したいですよね!
Node.jsはこの課題を克服し、非同期処理を同時進行させることができるのですよ!
シングルスレッドとは対照的に、マルチスレッドと呼ばれています(^^)
具体的な非同期処理の流れ。。。
今回は概要的なところをさらっと解説していきましたが、次回はイベントループやコールバックキューなどの具体的な非同期処理の流れについて解説してきたいと思います!
抽象的でイメージがつきづらいかもしれませんが、知っていると地に足がついた開発ができると思います!
ですので、こういったアーキテクチャ系の知識は身につけておきたいですね!
それでは、最後まで読んでくださり、ありがとうございました!