突然ですが、インターネットをしていて、不思議におもったことはありませんか?
たとえば、ページを下にスクロールしていくと、とつぜん広告が現れたり
ネットショッピングをしていたら、前にチェックした商品と似たような商品が”オススメです”と表示されたり
こういう仕組み、じつはWebアプリケーションと呼ばれています
本記事の概要
Web アプリケーションを開発したい!
- 初心者だけど、「Webアプリ」ってどうやって構築するの?
- Web アプリの開発したことはあるけど、「どんな仕組み」で動いてるんだろう?
- Web アプリの開発を管理してるんだけど、現場で使われてる「技術やフレームワーク」、「開発環境や開発ツール」などがいまいちよくわからないなぁ
そんな悩みをもつかたは多いのではないでしょうか?
Webアプリケーション(Webアプリ)とは、インターネット上にあるサーバで働いているアプリケーションのことです
アプリケーションとは、なんらかの機能をもったプログラムのことです。例えば、今日の気温や天気を知らせてくれる機能を実現したプログラムは、アプリケーションとも呼べます
Webアプリとは、「サーバで働く、なんらかの機能をもったプログラム」のことです
Webアプリの例としては、ネット通販のAmazonや楽天などがあります。とても複雑で大規模なので、たくさんのプログラムによって成り立っています
Webアプリの構築って、どんなことをするんだろう?
Webアプリの開発は、家を建てることに似ています
家の作り方にもいろいろあるように、Webアプリの開発にもいろいろあります。
たとえば、木造で作るなら、木を一本一本切り倒して、組み合わせてつくることができます。
でもそうすると、時間がたくさん必要になりますよね
時間を短縮して作るには、すでに組み合わされた出来合いのパーツを使う方法があります。
出来上がった壁や屋根、床などをもってきて、現場でそれを組み立てて作るわけです
Webアプリの開発でも同じで、開発言語と開発環境を決めたら、そのプログラミング言語で、ひとつひとつ必要な小さい機能を作っていく方法もあります。
それらを組み合わせて目的とするアプリケーションにする作り方があります。これは木をひとつひとつ切り倒して、組み合わせることに対応します。
この作り方では、Webアプリの仕組みを
「すみずみまでシッカリ理解」できる反面、
つくるものが多いので「時間がかかったり」、
Webアプリで重要なポイントとなる「セキュリティの脆弱性」など、
思わぬ問題に遭遇したりする可能性が高くなることがあります
Webアプリの開発でも、出来合いのパーツをつかう作り方があります。
出来合いのパーツは「フレームワーク」とよばれていて、
フレームワークをつかうことで、
初学者がウェブアプリを開発する「ハードルを下げたり」、
バリバリの開発者でも「開発時間を短縮」したり、
「デザイン面の負担」を軽くしたりできます。
また、多くの人がつかっているフレームワークを採用すれば、セキュリティの脆弱性などの心配も少なくなります。
(もちろん脆弱性は各自が脆弱性の診断ツールやサイトなどで確認する必要がありますが)
ざっと紹介しましたが、Webアプリの開発では、
開発手順や開発言語、開発環境、ツールやフレームワーク、デザインやセキュリティなど、
たくさんのことを、体系的に身につけなければなりません。
Webアプリの開発では、たくさんのことを、効率よく学ぼう
Webアプリの開発ではさまざまな技術を、効率よく、体系的に学ぶことが大事です。
IT業界は進歩が早く、日々新しい技術が出てきます。
しかしその根底にある考え方は変わりません。
また、多くの人に長く使われているものは、安心して使うことができます
なので、初学者が効率よく体系的に学ぶには、長く使われている「技術の要点」をしっかり押さえることが大事です。
技術の要点は言語や環境が変わっても通用するからです。
要点を押さえた上で、特定のプログラミング言語やフレームワークなどを使って、「実際に開発してみる」ことが理解の早道となります。
でも、自分で要点を調べたり、手探りで開発するのも、大変そうだなぁ〜
と思う方が多いと思います
そこで今回、これらのいいとこ取りをした、技術の要点をシッカリ学べ、さらにじっさいに開発まで手取り足取り教えてくれる本をご紹介します。
技術が生まれた背景から、その技術でどんな問題点を解決できるのか、など、
重要なポイントが凝縮されていて、体系的に理解できます。
Webアプリ開発の力を加速度的に高めてくれる1冊です↓
本書は、Webアプリケーションとは?といった、
基礎の基礎から始まって、Webアプリ構築に欠かせないWebやHTTPの知識から、
Webアプリがどうやってサーバと通信しているのかなどが、手を動かしつつ、理論もスンナリと理解できます。
Webアプリの例として、宅配ピザの注文サイトを題材に、
ログイン認証の仕組みやセッションの使い方が学べます。
大規模な顧客データを扱うときなどは、
データベースを使いますが、Lesson 5では、データベースをつかったWebアプリの作り方が学べます。
Webアプリを効率よく開発するためにの仕組みがLesson 6で学べます。
ここではJSP/サーブレットやフレームワーク利用のメリット・デメリットなど、
宅配ピザ注文サイトを例にして、わかりやすく説明されています
Lesson 7では、セキュリティについて、
SQLインジェクションやクロスサイトスクリプティングなどの攻撃方法と対策がまとめられています。
というわけで目次をみてみましょう!
はじめに
Lesson 0 プロローグ
市民権を得た「Webアプリケーション」
「Webアプリケーション」の開発技術はどこで学べる?
なぜ、あなたはWebアプリケーション開発技術はどこで学べる?
本書の対象読者
本書を読む上での想定知識
最も効率よく「技術」を学ぶ方法
Lesson 1 「Web アプリケーション」とは何か
1−1 デスクトップアプリケーション
1−2 Webアプリケーション
1−3 まとめ
Lesson 2 Webはどのように発展したか
2−1 WWWの誕生と普及
2−2 Webを支える技術の発明
2−3 CGIの誕生
2−4 サーブレットの登場
2−5 JSPの誕生
2−6 Webアプリケーションフレームワークの時代
2−7 まとめ
Lesson 3 HTTPを知る
3−1 HTTPの知識はなぜ必要か
3−2 WebブラウザとWebサーバの通信をのぞいてみよう
3−3 情報はどうやってインターネットの大海原を越えるのか
3−4 Webサーバへの要求をどのように伝えるか
3−5 まとめ
Lesson 4 CGIからWebアプリケーションへ
4−1 宅配ピザ注文サイトを作ろう
4−2 画面構成を考える
4−3 画面モックを作ろう
4−4 ログイン認証機能を作成する
4−5 ログイン状態をどのようにして記憶するのか
4−6 安全に状態を保存するための技術 ーセッションー
4−7 ピザ・ベントミノの完成
4−8 まとめ
Lesson 5 Webアプリケーションの構成要素
5−1 WebサーバとWebクライアントの時代
5−2 データベースサーバの登場
5−3 アプリケーションサーバの登場
5−4 Webシステムの三層構成
5−5 まとめ
Lesson 6 Webアプリケーションを効率よく開発するための仕組み
6−1 サーブレット/ JSPだけではいけないのか
6−2 サーブレット / JSPで「ピザ・ベントミノ」のログイン処理を実現する
6−3 Webアプリケーションのアーキテクチャ
6−4 フレームワークによるアーキテクチャの実現
6−5 レイヤパターンによるデータアクセス層の分離
6−6 O/Rマッピングフレームワークによるデータアクセス層の実現
6−7 フレームワーク利用におけるメリットとデメリット
6−8 まとめ
Lesson 7 セキュリティを確保するための仕組み
7−1 なぜセキュリティを確保しなければならないのか
7−2 代表的なWebアプリケーションの攻撃手法とその対策
7−3 設計・実装ミスに起因する誤動作やセキュリティ問題を防ぐための対策
7−4 まとめ
Lesson 8 おわりに
Lesson 9 付録
索引
となっています
本書を一通りやれば、Webアプリの開発力が身につきます。
くわえて、Lesson 9ではさらに詳しく学ぶための参考書籍やサイトが、なんと43項目も紹介されています。
それぞれの技術をより詳しく学べば、アプリの開発力がさらにつくこと間違いなしです。
Webアプリ開発の全体像を体系的に理解して、実際のWebアプリを開発してみることで、プロのWeb技術者への第一歩となります。
Webアプリの開発のしかた、どんな仕組みで動いてるのか、現場で使われるフレームワークや開発環境、ツールなどを理解できる1冊と成っています。
こちらの記事もどうぞ↓
『サーバーとは?レンタルサーバー、VPS、クラウドサーバー、専用サーバーの違いや、メリット・デメリットをまとめました』
『「クラウドストレージ」 ってどれを使えばいいの?「無料で使える容量」や有料プラン、裏技など、特徴を比較してみました』
『「Java」ってなに?なにがいいの?これから学ぶあなたが知っておくべきJavaのポイントをまとめました』