プログラミング基礎の基礎学習
現在大学3年生、フロントエンドエンジニア目指して新卒エンジニア就活中!
コーディングテスト対策をしようとしたら背筋が凍る程解らないことだらけだったので、基礎からたたき直しアウトプットとしてこの記事を投稿します。
本記事ではコーディング以外の基礎部分を取り扱います👶
現状のスキルレベル
-html&css 実務レベル
-javascript(next.js) アプリ開発経験あり
学習のロードマップ
ロードマップは以下の通りです💪
- webアプリの仕組み
- インターネットの基本
- OS
- バージョン管理ツール
- データベース
- APIとは
- webサイトにおけるセキュリティ対策
- テスト
webアプリの仕組み
大まかな仕組み
ブラウザがサービス側にリクエストを送るサービス側がレスポンスを返すという流れ。
ブラウザなどユーザーが操作する部分はクライアントサイド
サービス側がクライアントのリクエストに応じてサーブするのをサーバーサイド
サーバーサイドの具体的処理
WebサーバーがリクエストからDBサーバーに必要なデータを問い合わせ、HTML,CSS,JavaScriptや画像などのデータを送信
用語が沢山出てきたので用語整理
サーバー:リクエストに応じてレスポンスを返すコンピューター
Webサーバー:Webアプリケーションが動いているコンピューター
DBサーバー:データベースのが稼働しているコンピューター
インターネットの基本
ITの基礎中の基礎ネットワーク😎
httpとは
HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)」の略
通信のお約束のこと
ホームページ内のファイルなどのデータを受け渡しするときのルールのこと
通信する上でのルールのことを 通信プロトコルという
ホームページ表示までの流れ
- ブラウザがwebサーバーにページを要求
- webサーバーが要求されたページを渡す
- ブラウザがwebサーバーから渡されたページを表示
参考
どのようにインターネットが動くのか
とりあえずアルファベットの用語がたくさん出てきてごちゃまぜになりそうなので一旦整理
IPアドレス
インターネットプロトコルアドレスはPC一つ一つが持つ192.168.1.1のようなコードのこと
ドメイン
ドメインはインターネット上のあるWEBサイトやサーバーがどこにあるかを示す住所のようなもの
IPアドレスは数字で覚えにくくurlでなんのサイトなのかが解らないのに対し、文字列でなんのサイトかわかりやすくWEBサイトやサーバーがどこにあるかを示している。
DNSサーバー
ドメインネームシステムは数字のIPアドレスを文字列のわかりやすいドメインに変換してくれる翻訳機のようなもの
Webサーバー
Webサーバーはwebアプリケーションなどのデータが格納されたPCのことそれぞれIPアドレスを持っている
webサイトを閲覧するときはIPアドレスに問い合わせる必要がある
用語解説はこの辺にしてインターネットの動く流れに移ります
webサイト表示までの流れ
- URLにアクセス
- URLに含まれるドメインを元にDNSサーバーがIPアドレスに問い合わせる
- DNSサーバーがドメインに対応したIPアドレスをもつwebサーバーにデータを要求する
- webサーバーから送られたデータをブラウザに表示
参考
OS
パソコンの根幹部分のOSに付いて
よくわからない用語がたくさんあるのでまた用語整理
カーネル
OSの大部分を担当しているソフトウェア
メモリやCPUとのやり取りをする部分
デーモン
常にスタンバイや動作している部分
何も処理するものがないときはスタンバイし、処理の要求が来ると処理しまたスタンバイに戻るバックグラウンドシステム。
目に見えないコンピューターの裏の部分で動作している
シェル
人からの入力をコンピューターに伝える部分
実行を担当するのではなくただコンピューターにシェルから入力された司令を伝える係
バージョン管理
バージョンが管理するのは主にソースコード
変更履歴を線のように管理する
ブランチ
変更を枝分かれさせて共同開発でも困らないようにバージョンを管理する仕組み
多くのバージョン管理システムでは変更を線のようにつなぎ履歴を管理している。
ブランチを使用すると変更があるたびに履歴の線が枝分かれしていくこの仕組みによって複数人が同時に変更をしてもすべてを上書きすることなく一つにまとめることができます。
バージョン管理システムgit
リポジトリ
ファイルの状態を記録する部分
ローカルリポジトリ
ローカル環境(自分のPCなど)に作られるリポジトリ
リモートリポジトリ
GitHubに作られるリポジトリ
複数人で参照できる
クローン
リモートリポジトリをローカルリポジトリにダウンロードすること
コミット
ファイルをローカルリポジトリに保存すること
プル
リモートリポジトリにありローカルリポジトリにない部分をローカルリポジトリに加えること
プッシュ
ローカルリポジトリをリモートリポジトリに送信すること
マージ
枝分かれしたブランチを結合し変更を反映させること
参考
データベース
データの集合体がデータベース
テーブルについて
データベース種類ごとの単位
表形式でデータを管理している
レコード
レコードは、テーブルの行を意味する様々な種類のデータを取り扱う
カラム
カラムは一つのデータを扱い
フィールド
データベース内の最小単位エクセルでいうところの「セル」
リレーショナルデータベース
APIとは
別のプログラムから機能の一部をリクエストされたときに用意されている窓口
情報セキュリティ
情報セキュリティの三項目
情報の機密性
許可された人のみがアクセスできる状態
機密性を維持する三要素
- アクセス制限
- パスワード認証
- 入室制限
情報の安全性
情報が最新で正しい状態であること
機密性を維持する二要素
- アクセス履歴利用者の確認
- 情報の変更履歴データ改ざんの検知
情報の可用性
必要なときに、対象の情報を安全に利用できること
可用性を維持する要素
- サービスの継続提供
テスト
ソフトウェアテストとは、開発中のソフトウェア(コンピュータプログラム)が意図した通りに動作するかを検証すること。
単体テスト
単体テストは対象のモジュールが意図したとおり正しく機能するかを確認するために行われるもの
結合テスト
複数のモジュールを結合したときに正しく機能するかを確かめるテストで、主にモジュール間の接続点(インターフェース)がうまく機能するかを確認するために行われるもの
システムテスト
開発の最終段階にシステム全体を対象に行われるテスト。
現在多くの人に感動を与るフロントエンドエンジニア目指して就職活動をしています。
こちらもご確認ください