LAMPに代わる構成として注目のMEANスタックの基礎知識とインストール、ひな型作成:MEANスタックで始めるWebアプリ開発入門(1)(1/3 ページ)
MEANスタックを用いたWebアプリの開発方法について紹介していく連載。初回はMEANスタックの特徴と構成要素MongoDB、Express、AngularJS、Node.jsの概要、インストールの仕方とひな型の作成方法を解説。
LAMPに代わる構成として注目のMEANスタックとは
今でもよく使用されていますが、以前からWebアプリ開発ではLAMP環境がよく使用されていました。LAMPとは、一般的なWebアプリを開発するのに人気の高いオープンソースソフトウェアを組み合わせたもので、以下を用いたシステムのことです。それぞれの頭文字を取って「LAMP」と呼ばれています(参考)。
- OS:Linux
- Webサーバー:Apache HTTP Server
- データベース:MySQL
- プログラミング言語:PHP/Perl/Python
LAMP環境では使用されるソフトウェアが全てOSS(オープンソースソフトウェア)なので中身を知ることも自分で改善することもできますし、コミュニティもしっかりとしているので信頼性があります。そして、無料なのでコストを抑えることも可能になっています。
このように、手軽にWebアプリを開発できて人気のLAMP環境ですが、最近ではこのLAMPに代わる構成として、「MEAN(MEANスタック)」という構成が注目されてきています。独SAPがGitHubと連係するオープンソースのコードレビューツール「ReviewNinja」をMEANスタックを用いて開発していることで話題を集めました(参考)。
本連載では全体を通して、MEANスタックを用いたWebアプリの開発方法について紹介していきます。そして、連載の初回となる本記事では、MEANスタックがどういったものか、どんな技術からできているかについて解説していきます。
MEANスタックの3つの主な特徴
MEANスタックについての説明をしていきましょう。MEANとは、LAMPと同じく、システムを構成する技術の頭文字をつなげたものです。
- M:MongoDB(ドキュメント指向データベース)
- E:Express(Node.js上で動作するMVCフレームワーク)
- A:AngularJS(フロントエンドのJavaScript用MVWフレームワーク)
- N:Node.js(サーバーサイドJavaScriptの実行環境)
各構成内容については後述しますが、このMEANスタックは、とてもシンプルで一貫性のあるアーキテクチャです。特に着目すべき点は、次の部分です。
全てJavaScriptで開発可能
フロントエンドはAngularJSを使用します。そしてサーバーサイドもNodeを使用するので、全てJavaScriptでWebアプリを開発することになります。使用する言語がJavaScriptだけに統一できるのは大きなアドバンテージといえるでしょう。
JSONフォーマットを使用
JavaScriptではJSONフォーマットを扱うのが非常に簡単です。クライアントからサーバーサイドへのデータの受け渡しはJSONで通信できますし、データベースもMongoDBを使用しているので、JSONフォーマットを使用できます。
このため、フロントエンドからデータベースまで一貫してJSONフォーマットでデータのやりとりを行うことが可能です。
Node.jsで動作するツール類を使用できる
これはMEANスタックに限ったことではありませんが、最近はGruntやGulpなどのビルドツールをよく使用します。MEANスタックのアプリはNode.js環境で実行するので、Grunt/Gulpをインストールしてそのまま使用できます。これらビルドツールを使用すれば、開発のワークフローがより簡単に自動化できるでしょう。
なお、Grunt/Bower/Yeoman/Gulpについては連載「Gruntで始めるWeb開発爆速自動化入門」をご確認ください。
また、Node.jsを実行環境にしているクラウドサービスは多数存在し、すぐに動かして試す環境が整っています。特に、Google Compute EngineはMEANスタックのデプロイをボタン一つでできる「Click to Deploy」機能を持っています(参考)。
以上から分かるように、MEANスタックで構成されたシステムは、一つの言語で開発でき、データもJSONで全てやりとりするので全体をシンプルに作ることができます。
次は、MEANスタックを構成する各要素についてもう少し説明します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- MEANスタックで家電制御アプリを作るための設計・準備と温度湿度センサーからのデータ読み取り
家電〜Webアプリ間の双方向通信をSocket.IOで行うための設計や、MEANスタックのインストール、Yeomanによるアプリのひな型作成、温度湿度センサーからデータを読み取る方法などについて解説します。 - Socket.IOでセンサー&MongoDB〜AngularJSアプリ間の通信を行う
家電〜Webアプリ間の双方向通信をSocket.IOで行うアプリについて、サーバー側のArduino連携やMongoDBへのデータ保存などと、クライアント側のAngularJSに分けて動作を解説します。 - Node.js、Socket.IO、MongoDBでリアルタイムWeb
Node.jsとSocket.IO、MongoDBを使用して、Webページの更新内容がリアルタイムに画面に反映されるサイトを作ってみた - Node.js、MongoDBでデータの保存
Node.jsとSocket.IO、MongoDBを使用して、Webページの更新内容がリアルタイムにView画面に反映されるサイトを作ってみた - exe/dmgしか知らない人のためのインストール/パッケージ管理/ビルドの基礎知識
Windows、Mac、Linuxごとのインストーラー、仮想実行環境、言語ごとのモジュール(ライブラリ)管理・ビルドツール、ローカルリポジトリによる配布、標準リポジトリ、GitHubでの公開などを紹介。 - ようこそJavaScriptの世界へ
JavaScriptで本格的なプログラミングの世界に触れてみよう。連載を通じて実用的なアプリケーションを作れるようになるはず!?(編集部) - JavaScriptテストの基礎知識と使えるフレームワーク6選
しっかりとJavaScriptの“テスト”を行うために、最近のJavaScript事情やテストを取り巻く環境、今注目のテストフレームワークを6つ紹介する