---
# System prepended metadata

title: Webアプリケーション開発基礎編

---

# Webアプリケーション開発基礎編

## Webアプリケーションの仕組み
- ブラウザは HTML と CSS と JavaScript しか対応してない
- サーバー側で諸々処理して、3種ファイルを渡してブラウザにお任せ
- Webブラウザ ↔ Webサーバー ↔ APサーバー ↔ Webアプリケーション
- [超絶初心者のためのフロント入門（HTML、CSS、JavaScript） - Qiita](https://qiita.com/shuntaro_tamura/items/c9b2fec0f3a9f7d1e987)

### HTML
- [HTML の基本 - ウェブ開発を学ぶ - MDN](https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/HTML_basics)
- Hypertext Markup Language
- Webサイトの本体。主にレイアウトを決めるための言語。

### CSS
- Webページのデザインを司っている

### JavaScript
- Webページに動きを作ってくれる
(例: 画像をクリックしたらタイトル文字列を変える)

## ネイティブアプリケーション
- PC/スマホにインストールするアプリケーション
    - Swift(iOS),Kotlin(Android),Electron(PC) など
- Webアプリケーションと対になる存在

## 各種担当領域
(これらのことをすべてやる人は「フルスタックエンジニア」と呼ばれたりする)

### フロントエンド(クライアントサイド)
- 主にユーザが触る画面を担当
- HTML,JavaScript,CSS,jQuery,Vue&Nuxt,React&Next,Angular など

### バックエンド(サーバーサイド)
- 主にフロントエンドに渡すデータの処理を担当
- PHP(Laravel),Ruby(Rails),Python(Django,Flask,FastAPI),Node(Express) など

##### Webフレームワーク
- ライブラリをまとめたもの
- ライブラリとの違いは「書き方を強制されるか否か」
- ライブラリは拡張して使うものだがフレームワークは決められた書き方に沿うほうがやりやすい

### インフラ
- Webアプリケーションの開発環境/動作環境を担当
- Linux,Nginx,Docker,MySQL,PostgreSQL,AWS,GCP など

## 簡単に作ってみる
- 画面を HTML,JavaScript,CSS で作る
- サーバーからデータを渡してみる

## 余談：最近のWebアプリケーションの構成について
1. バックエンド側で画面を作りきってユーザに渡すパターン
    - バックエンド中心 -> データと画面を混ぜてユーザに渡す
2. SPA/API駆動
    - フロントエンド中心 -> APIを叩いてデータを取りに行く
