今回はわかりそうでわからない、わかるようでわからないWEB用語をまとめてみました。
私自身がなんとなくわかった気になっていて詳細に説明が出来なかったので、メモがてら残します。
コールバック関数
関数の中で呼ばれる関数のことであり、JavaScriptではDOM操作でよく利用されます。
const func1 = (callback) => {
console.log('このあとコールバック関数が呼び出されます。');
callback();
};
const func2 = () => {
console.log('コールバック関数です!');
}
func1(func2);
// 【出力結果】
// このあとコールバック関数が呼び出されます。
// コールバック関数です!
フェッチとプリフェッチ
フェッチ(Fetch)もプリフェッチ(Prefetch)も、APIからリソースを取得する手法です。
フェッチは必要なリソースを取得するのに対して、プリフェッチは現在は必要ないが、将来的に必要となる可能性が高いリソースを背後で取得しておくことを言います。
また一般的にフェッチはfetch関数
を用いるのに対し、プリフェッチはlink要素
を使用することができます。
レンダリング
レンダリングとは、ブラウザがリソース(HTML、CSS、JavaScript)を受け取り、ユーザーが閲覧できるように解析して画面描写することを言います。
認証と認可
認証は主にログイン時に関わってきます。
ユーザー個々人のアイデンティティを確認するプロセスであり、そのユーザーが本当にアクセスしても良いユーザーであるかどうかを証明するのが認証です。
一方認可は、すでに認証されたユーザーに対して、特定のリソースや機能へのアクセス権限をそのユーザーに与えるか否かを決め、権限のないユーザーのアクセスを拒否する事ができます。
例)
AさんもBさんも、登録すればAmazonにログインでき、利用することが出来ます。(認証)
Aさんは自分自身の購入履歴を見ることは出来ますが、Bさんの購入履歴を見ることは出来ません。(認可)
SaaS、PaaS、IaaS
SaaS、PaaS、IaaSはいずれもクラウドで提供されるクラウドサービスのことです。
違いはどこまでサービス提供者が運用管理をするかです。
SaaS、PaaS、IaaSの順でサービス提供者の管理範囲が大きいです。
SaaS(Software as a Service)
ソフトウェアの更新からバグの修正まで、サービス提供者の方で行うので、利用者は、バージョン管理やバグを心配する必要がありません。つまりほぼお任せ状態なので、とても楽が出来るサービスです。
一方で自由度、カスタマイズ性に劣るので、差別化がしずらいです。
例えばGitHubやレンタルサーバーがこちらに当たります。
PaaS(Platform as a Service)
開発環境までをサービス提供者で準備しているので、開発者は環境構築を気にすることなく開発を始めることが出来ます。
SaaSとは違い、アプリケーション部分は開発者にお任せで、面倒な環境構築の部分を担ってくれるので、SaaSに比べて自由度が高いです。
AWSの一部サービス(RDS等)がこちらに当たります。
IaaS(Infrastructure as a Service)
ネットワーク、サーバなどの土台部分のみを準備します。もちろんPaaSよりも自由度が高く、カスタマイズ性も抜群です。
一方で、インフラ構築からアプリ開発までの幅広い知識が必要となります。
AWSの一部サービス(EC2等)がこちらに当たります。
ライブラリとフレームワーク
ライブラリはそれ単体で開発することをターゲットにしておらず、開発の中で補完的な役割を担います。
部分的に使うことが容易であり、補助ツールとして様々な開発場面で役に立ちます。
また、一つのアプリ内に複数のライブラリが存在することも少なくありません。
ライブラリで有名なのに、jQueryとReactがあります。
フレームワークはそれ単体での開発も可能となっており、便利なライブラリを包括しているケースが多いです。
単体で高い完成度を誇り、ライブラリのように一つのアプリ内に複数のフレームワークが共存することはほとんどありません。
有名なのがRuby on railsや、Next.jsがあります。