業界注目の「Node.js」とは?メリット・デメリットも紹介
Node.jsとは、ChromenoV8 Javascriptエンジンで動作するJavaScript環境です。
ブラウザ上で動作するほとんどのJavaScriptとは異なり、ウェブブラウザの中で実行されるのではなく、むしろサーバーサイドJavaScriptの一種と言えます。
「スケーラブル(拡張可能)なネットワーク・プログラムを作成するための簡単な方法を提供する」ことを第一目標として設計されており、CK10問題(1万台接続問題)にも対応できるため、IT業界から注目されています。
今回はその「Node.js」の特徴についてご説明します。
Contents [hide]
業界が注目する「Node.js」とは?
JavaScriptはプログラム言語のひとつで、プロトタイプベースのオブジェクト指向スクリプト言語であり、ウェブブラウザ上で動作し、動的なウェブサイト構築やリッチインターネットアプリケーションの開発に用いられます。
Node.jsを使用することで、このJavaScriptをサーバサイド(サーバーサイド)で実行できるようになるため、サーバサイドとクライアントサイドの両方で同じ言語による開発が可能となります。
Node.jsはAPIにノンブロッキングI/Oを採用しているため、大量のアクセスに強く、チャットシステムなどのリアルタイム性が必要なアプリケーションの開発に最適です。
HTTPサーバやファイルサーバなどの、サーバの根幹的なアプリケーションの作成などにも使われます。
Node.jsのコアモジュール
Node.jsには、「コアモジュール」と呼ばれる組み込みのAPIが存在します。
例えば、プログラムの中で外部ファイルを読み込む「require」モジュールなどのことです。
アプリケーションの開発には、これらのモジュールは不可欠です。詳しくは、公式サイトのAPIリファレンスなどを参考にしてください。
モジュールには、標準モジュールと、第三者が配布しているモジュールがあります。
- 標準モジュール
特別な手続きをすることなく、requireで読み込んで使えるモジュール。
HTTPサーバなどを操作するhttpや、ファイルシステムを操作するfsなどがある。
- 第三者が配布するモジュール
クライアントサイドのjavascriptでの、jQueryライブラリにあたるようなもの。
npmを使って配布されているモジュールのインストールや管理が可能。
Node.js上のフレームワーク
Node.jsでのアプリケーション開発を効率的に進めるためのフレームワークは多数あります。
シンプルで軽量な「Express」や、「Rails」ライクでフルスタックな「Sails」などが有名です。
それぞれに特徴があるので、開発スタイルに合わせて選びましょう。
Node.jsのインストール方法
Node.jsの公式ホームページから、自分のパソコンが対応する仕様を選んでインストーラーファイルをダウンロードしましょう。
対応するOSには「Windows」「macOS」「Linux」と主流のものが揃っているため、どの環境でもJavaによるサーバサイド型プログラムを作成することが可能となります。
Windowsでは、Node.jsをインストールすると実行ファイルである「node.exe」が作成されるため、こちらをクリックしてスタートさせます。
Node.jsNode.jpを使用するメリットとは?
Node.jsを使用すると以下のメリットがあります。
・従来のWebサーバーは同時アクセス数が増加することでメモリを必要とし、結果としてパフォーマンスが落ちてしまいますが、Node.jsを活用すればメモリ消費量を抑えることができます。
・データの送受信(I/O)の完了を待たず、それぞれ並列処理が可能な「ノンブロッキングI/O方式」を採用。これにより大量アクセスにも耐え、高速処理を実現しています。
・Node.jsはサーバサイドによるJavaScriptなので、フロントエンドからサーバサイドまでJavaScriptのみで記述することが可能となります。
・イベント駆動型のプログラミング方式であるため、読みやすいプログラムの設計が可能です。
Node.jsを使用するデメリットとは?
Node.jsを使用するデメリットには以下の例があります。
・Node.jsに対応しているサーバが少ないため、VPS(仮想プライベートサーバ)などを利用してインストールする必要があります。
・Node.jsはシングルスレッドなので、1つのイベント処理が重たい場合、大量のリクエストを待たせてしまうことがあります。システムがエラーを起こせばサーバダウンへと繋がる可能性があります。
・I/Oにおける関数を非同期で処理するため、実行時におけるコールバックを多用します。
Javaでプログラムする人なら知っておきたい
Node.jsは、プログラム環境として8年ほどの歴史しかありませんが、幾度となくバージョンアップされ、Webアプリケーション開発にも多用されています。
Googleが開発した高速エンジンである「V8」を使用しているなど、その成長に大きな期待が寄せられているのがサーバサイドJavaScriptです。
JavaScriptを使用するプログラマ・エンジニアなら、積極的に活用することをお勧めします!