:TechAcademyマガジンリアルタイム通信で活用!注目の技術「Node.js」とは【初心者向け】2018年1月22日(月)TechAcademyTweet今回は、Node.jsについて解説します。Node.jsとは一体何ができて、使う上でどんなメリット・デメリットがあるのか気になる方もいるでしょう。比較的新しい技術ですが、Netflixなど有名なサービスでも採用されています。エンジニアでなくてもどんな技術が理解しておくことをおすすめします。本記事は、TechAcademyのNode.jsオンライン講座の内容をもとに作成しています。目次Node.jsとはNode.jsのバージョンNode.jsの使用用途Node.jsの代表的なモジュールNode.jsのメリットNode.jsのデメリットNode.jsを学習できるサービスNode.jsを学習できる本Node.jsとはNode.jsとは、サーバーサイドのJavaScript実行環境です。Node.jsはJavaScriptを使用して処理しています。したがって、Node.jsを操作する上で使用する言語はJavaScriptです。フロントエンドのJavaScriptではなく、サーバーサイドのJavaScriptです。フロントエンドとは、HTMLやCSSと組み合わせて、ブラウザ上にグラフィカルに表示する部分を操作するためのJavaScriptです。サーバーサイドとは、インターネット上のデータが保存されているコンピューター上で動作する処理系の事です。最近で言うとクラウドと呼ばれるような、データセンター内のコンピューターをサーバーと呼びます。Node.jsは、PHPやRubyやPythonやJava等のプログラム言語と同様に、サーバー側で動作するJavaScriptです。Chromeに搭載されているV8というレンダリングエンジンをコマンドラインから使用することができます。Node.jsのバージョンNode.jsの最新バージョンは、推奨版が8.9.3で、最新版が9.3.0です。通常使用する場合は推奨版の8.9.3のように先頭の数字が偶数の物を使用します。最新版のように先頭の数字が奇数の場合は、新しい機能を追加して、問題がないかを確認しているバージョンになりますので、Node.jsでの先進的な開発を行う上級者向けのバージョンになります。Node.jsのインストール方法もぜひチェックしておきましょう。対象ファイル名.jsNode.jsの使用用途メモリ消費量が少ないため、小さな規模の開発・運用時に、他の環境と比べるとよりパフォーマンスを出すことが可能です。同時に大量のトラフィックを捌くことができ、動画配信やチャットアプリ、ゲームの開発で使われることが増えてきています。Webアプリこれまでのプログラミング言語同様にWebアプリケーション開発時に使用されます。ピグライフ公式サイトピグライフ構成Node.jsを利用することで、ゲーム上で多数のユーザーが同時接続を行う状況で、パフォーマンスを落とさず処理をすることが可能です。参照Webサーバーこれまでのでのプログラム言語とは異なり、Webサーバーとしても使用されます。チャットサーバー事例(IBM)Node.jsでWebサーバーを構築することは、CPU利用率の低い処理をリアルタイムで頻繁に返す用途に向いています。Node.jsでは、Socket.ioというリアルタイム通信を行うライブラリを使用することができます。参照スマホアプリネイティブアプリやハイブリッドアプリの開発に使用できます。公式サイトグランブルーファンタジーのNode.js活用環境Node.jsを使用することで複数ユーザーのモバイル通信速度が異なる状態でも、スムーズなバトル処理を行うことができます。参考Node.jsの代表的なモジュールasyncNode.jsで非同期処理を実装する場合、JavaScriptのコールバック関数を使用することになります。コールバック関数だけで実装すると処理が複数になると非常に複雑で、保守しづらいソースコードになります。asyncを使用すれば、簡潔にに非同期処理を実装可能です。全てのブラウザのバージョンに対応しているわけではありません。asyncの使い方ExpressNode.jsでゼロからアプリケーション開発を開発することは非常に手間がかかります。これは、他の言語でも同様ですが、Node.jsはフロントエンド開発を主とするJavaScriptから発展してきているため、サーバーサイドに関する便利な機能を最初から揃えているわけではありません。その為、npmを利用して必要なモジュールをインストールして使用します。言っても、使用するモジュールをアプリケーション開発の度に考えるのも大変です。そこで、よく使う機能をあらかじめまとめてくれたのが、Node.jsのフレームワークであるExpressです。実務上でも、Expressを使用することで、同じ設計を共有して開発効率を格段に高めることが可能です。Node.jsのメリットC10K問題の解決につながる高速性能C10K問題とは、従来のサーバーで発生していた問題で、サーバーへの接続台数が10,000台を超えると、表示が遅くなるという問題です。技術的に解決することが可能ですが、Node.jsのノンブロッキングI/Oという処理により、Node.jsを使用するだけでC10K問題を解決することができます。Node.jsの大きな特徴である「非同期処理」を行うことである処理が完了する前に次の処理を行います。することで1つのプロセスで多くの処理を捌くことができます。Node.jsのデメリットNode.jsは当初、フロントエンドとサーバーサイドを同じJavaScriptを使用して、連動して処理させることも目標の1つでした。最終的に、サーバーサイド(Node.js)のJavaScriptとフロントエンドのJavaScriptとの処理上の互換性はありません。言っても、JavaScriptで有ることは変わりないため、フロントエンドで習得したJavaScriptに関する基本知識は非常に役立ちます。Node.jsを学習できるサービスドットインストール動画を見ながら学習する形式のサービスです。1つの動画が3分くらいで見終わることができるので、スキマ時間にサクサク進めることができるはずです。基本的な文法を理解し、使い方を学習できます。ドットインストールをやってみたUdemyこちらもドットインストール同様、動画の学習サービスとなっています。英語の内容のものが多いですが、非常に実践的な内容が多いので、Node.jsを使ってアプリケーションを開発したい人におすすめです。有料の動画はキャンペーンなどで格安で手に入る時期などもあるので、ぜひチェックしておきましょう。Node.js入門インストールする手順やNode.jsを理解する上で知っておきたい知識を学べます。Expressというフレームワークも学べるので、アプリを開発するイメージがつかめるはずです。数時間・数日で終わる内容なので、これからNode.jsを学びたい方は最初に目を通しておくと良いでしょう。Node.js入門もっと多くのサービスを比較したい人は、Node.jsの学習サービスまとめを参考にしてみてください。Node.jsとReactアプリケーション開発テクニックReact.jsとNode.jsを使用して実際にWebアプリケーションを開発する流れを学べます。どちらもモダンな技術で多くの企業で使い始めているので、これからエンジニアを目指す方であれば就職や転職で有利に働くはずです。Node.js超入門Node.js超入門HTML/CSSをある程度理解し、初めてプログラミングの技術に触れる方は基礎から学べます。後半ではExpressというフレームワークを使って実際にWebアプリケーションの開発を学べます。入門から実践的な内容まで学習できる本になっています。JS+Node.jsによるWebクローラー/ネットエージェント開発テクニックJS+Node.jsによるWebクローラー/ネットエージェント開発テクニッククローリングやスクレイピング、APIの使い方などいろんなサイトの情報を集めて1つのサービスを作りたい方におすすめです。ある程度JavaScriptの知識がある方は、手を動かしながら自分の作りたいものを形にすることができるでしょう。多くの本を比較したい人は、Node.jsを学習できる本まとめを参考にしてみてください。今回はNode.jsについて解説しました。有名なサービスやゲームにも使われていて、今後ますます需要が増す技術になるでしょう。Node.jsの習得を目指したい方はぜひ全体像を理解しておきましょう。オンラインのプログラミングスクールTechAcademyでは、Node.jsオンライン講座を開催しています。Node.jsを使ってWebアプリケーションを開発することができます。現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。独学に限界を感じている方はぜひご覧ください。この著者の記事一覧TechAcademyマガジンは、オンラインのプログラミングスクールTechAcademyが運営する教育×ITに関するWebメディアです。トレンドや最新情報など役に立つ記事を発信しています。requestを使う方法【初心者向け】2018/1/26続きを読むTechAcademy「共感できるフィーリングが増えた」非エンジニアの上場企業役員が、プログラミングを学んで得たもの。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。requestを使う方法【初心者向け】2018/1/26TechAcademy「共感できるフィーリングが増えた」非エンジニアの上場企業役員が、プログラミングを学んで得たもの。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。IT(シンクイット)エラーサイトに予期せぬエラーが起こりました。たってから再度お試しください。