【Node.js】サーバーサイドでJavaScriptを使う利点
クライアントだけではなく、サーバーサイドでも開発言語としてJavaScriptを採用することが数年前から開発者の間で注目されています。
サーバサイドJavaSciptとしていろいろな実行環境が登場した中でも、特にNode.jsが、現在最も利用されています。
以下ではNode.jsの概要やその利点についてご紹介しましょう。
Contents [hide]
そもそもクライアントとサーバーって?
Node.jsについて解説する前に、まずはクライアントとサーバーは何を指すのかを簡単に説明します。
【クライアント】
PCやスマホなど、インターネットを通して得た情報を確認するツール
【サーバー】
インターネット介してサービスをクライアントに提供するコンピュータ
クライアント(ユーザー)がWebサイトを閲覧する際はインターネットを通じて、サーバーへ情報を見にいっていることになります。
クライアントサイドとサーバーサイド
それでは「クライアントサイド」は何かというと「クライアント側でアプリケーションを実行する」ことを指します。
つまり、クライアント側のパソコンやスマートフォンに搭載されているWebブラウザがプログラムを実行することを意味します。
一方、「サーバーサイド」はアプリケーションを提供する側(インターネット上のWebサーバ側)がプログラムを実行するという意味です。
それぞれで使用するプログラミング言語は基本的に異なり、クライアントサイドではJavaScript言語、サーバーサイドではPHP、Java言語が代表的です。
サーバーサイド最注目のNode.jsとは
サーバーサイドJavaScriptとは名前の通り、サーバー側の処理をJavaScriptで実装することです。
いままで通常、PHPやRuby、Javaプログラミングでサーバーサイドが実装され、JavaScriptはブラウザ側の処理を担ってきました。
しかし、最近は以下でご紹介するように、特にWebアプリケーションなどではサーバーサイドでもJavaScriptを用いて開発する利点が認識されてきています。
実際にサーバーサイドの言語もJavaScriptが採用されて、Webシステム開発が行われることも多くなりました。
そんなサーバーサイドJavaScriptの実装の中でも、Node.jsは2009年から開発が進められ、当初から最も注目を集めてきたプラットフォームなのです。
Node.jsの利点はWebアプリケーションで
Node.jsはグーグルが開発したJavaScript実行エンジンである「GoogleV8JavaScriptEngine」を利用しており、高速で動作します。
設計思想としてイベント駆動型でノンブロッキングI/Oモデルを採用しており、時間がかかる処理も完了を待たずに他の処理を始め、処理の終わりはコールバック関数で知らせます。
この方法により大量の接続があっても処理速度が落ちないという特徴があります。
この特徴は小さなデータのやり取りを頻繁に行うWebアプリケーションでの利用に向いているといえるでしょう。
しかし、それ以外の通常のWebページでは特に利点はありません。
むしろ過去の資産が利用できず、細かな点も自分で実装しなければならないNode.jsは通常のWebサーバーには向いていないといえます。
そのためNode.jsが従来のWebサーバーを置き換えてしまうということはないでしょう。
JavaScriptであること自体も大きな利点
Node.jsの利点は上記のように同時接続数の許容量が大きいということもありますが、他の大きな利点はJavaScriptで記述されるので、サーバーサイドとクライアントサイドが同じ言語であるということです。
言語が同じであるため同じ技術者がサーバーとクライアント両方を開発しやすくなります。
通常なら必要となるサーバーサイドとクライアントサイドの技術者間の仕様のすり合わせなどが少なくなり、開発コストが押さえやすくなります。
また、例えばフォームの入力チェックなど一部の処理ではコードの共通化も可能で、その分開発工数を減らすこともできます。
その利点をいかしたNode.jsを使い、サーバーとクライアントがJavaScriptで書かれることを前提とした種々のフレームワークも存在します。
WebアプリのキャリアにつながるNode.js
注目されているNode.jsはサーバサイドJavaScriptでの定番プラットフォームとなりつつあります。
フロントエンドエンジニアもWebアプリケーション開発でその知識を要求される場面は増えてきています。
Webアプリの分野でキャリアを積むにはその技術を身につけておくべきでしょう。