UPDATE:2020.1.22
- CATEGORY
Webアプリケーションって開発できる?
Contents
先日他のコーダーさんたちと「webアプリって開発できるものなのかな?」という話になりました。
また、時々お問い合わせでも「webアプリケーションの開発は出来ますか?」と聞かれることもあるそうです。
webアプリケーションに興味がある方が多いということでしょうか。
そんなわけで今回はwebアプリケーションについて簡単に話をしてみようかな、と思います。
webアプリケーションとは?
皆さんはwebアプリケーションというと、どのようなものを想像しますか?Webアプリケーションとは、Webサーバー上で動作し、Webブラウザを用いて利用するアプリケーションのことである。IT用語辞典より
具体的にはweb上利用できる「駅の乗り換え検索」だったり、「書籍の検索」だったり、ですね。
これらをWebアプリケーションと呼ぶそうです。
もしかしたらスマートフォンアプリ(ネイティブアプリ)と混同する方も多いかなと思うのですが、
スマートフォンアプリ(ネイティブアプリ)は端末へのインストールを必要とするものを指すようです。
一方で、webアプリケーションはダウンロード不要でweb上で動くアプリケーションのことを指します。
webアプリケーションの開発の仕組みを理解していれば
スマートフォンアプリ(ネイティブアプリ)の開発もできると思うのですが、
一応ふたつは似ているけど別物です。
私が前職で開発していたWebシステムとは「Webサーバー上で動作」し、「Webブラウザを用いて利用する」システムだったので、
Webアプリケーションとほぼ同じものだと思います。
(実際webで調べて見ると「ウェブサイト、ウェブシステム、ウェブアプリケーションの3つに大きな違いはない」という記事が出てきたりします)
ですので、「Webアプリケーション=webシステム」ということで、
以降は開発経験があるwebシステムについて記事を書いていこうと思います。
webシステム(webアプリケーション)はどのようなしくみで動いている?
webシステムは大きく分けて「クライアントサイド」と「サーバーサイド」にわかれます。(そしてそれぞれ開発も「フロントエンド」と「バックエンド」にわかれています)
●クライアントサイド(フロントエンド) →ユーザー自身で見える部分、直接操作できる部分
●サーバーサイド(バックエンド) →ユーザーが見えない部分・直接操作できない部分
図で表すとこのような感じですね。
(これをブログに載せるか半日悩んだのですが……
勉強ノートに描いた手書きの図ですみません、デジタルで描き起こす時間がありませんでした;)
ネット上でみなさんが直接見て操作している部分が「クライアントサイド(フロントエンド)」、
目に見えないところでデータベースから情報を取得していたりする部分が「サーバーサイド(バックエンド)」です。
なぜフロントエンドとバックエンドにわかれるの?
webシステムはネット上で誰もが使うことができるようにと考えられたシステムです。システムには操作(受付)を担当する部分と情報処理をする部分が必要となります。
webシステムは情報処理部分を一つ(または複数)のサーバーで用意し、
操作(受付)担当部分を利用者(ユーザー)毎にブラウザという形で用意しています。
その2つをインターネットでつなぐことで、誰もが利用できるwebシステムとなるわけです。
システムの開発は……とても大変です。
システムの規模が大きくなるほどに大変さは増していき、大人数で開発することとなります。
(私の経験ではシステム開発は一人二人で開発できるものではなく、数十人~数百人規模で開発が普通でした)
人数が増えると分担が必要になりますね。
そうすると「バックエンド」と「フロントエンド」に別れて分担すれば開発しやすくなります。
(「バックエンド」と「フロントエンド」では開発に使う言語も違うので、
どちらかで使用する言語を勉強する方が効率も良くなります)
webシステム開発はどのように行うの?
大まかに説明すると、まずはシステムの「設計」を行います。それからシステムの基盤を作り、各種機能を作っていきます。
開発にはシステムが正しく動くかのテストも必要となるので、
一人二人でできるものではなくとにかく人数が必要となります。
webシステム(webアプリケーション)とはどんなものなのか、
とても簡単な説明でしたがお伝えすることが出来たでしょうか?
実はホームページ制作とwebシステム開発は似ているようで結構違うもの、なのです。
(大きな違いは開発に携わる人数で、ホームページ制作は少人数でも制作できるのですが、
webシステムの開発は多くの人が必要となる場合がほどんとなのです)
【おまけ】
webシステム開発に興味がある方に強くおすすめしたいのが↓本です。
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか
日々進化するwebの世界で変わらない根本的な仕組みの部分を丁寧に説明しているので、
いつの時代でも通用するwebシステムの知識を学べます。(私のバイブルですw)
インターネットが出来た歴史から説明しているのにページはそこまで多くなくてこの薄さ!
なので一日もあれば読むことができます。(しかし私は理解するまでには何回も読み直しました;)