LoginSignup
2
3

初学者エンジニア学習ログ 基礎編😅

Posted at

プログラミング基礎の基礎学習

現在大学3年生、フロントエンドエンジニア目指して新卒エンジニア就活中!
コーディングテスト対策をしようとしたら背筋が凍る程解らないことだらけだったので、基礎からたたき直しアウトプットとしてこの記事を投稿します。

本記事ではコーディング以外の基礎部分を取り扱います👶

現状のスキルレベル
-html&css 実務レベル

-javascript(next.js) アプリ開発経験あり  

学習のロードマップ

ロードマップは以下の通りです💪

  • webアプリの仕組み
  • インターネットの基本
  • OS
  • バージョン管理ツール
  • データベース
  • APIとは
  • webサイトにおけるセキュリティ対策
  • テスト

webアプリの仕組み

大まかな仕組み

ブラウザがサービス側にリクエストを送るサービス側がレスポンスを返すという流れ。

ブラウザなどユーザーが操作する部分はクライアントサイド
サービス側がクライアントのリクエストに応じてサーブするのをサーバーサイド

サーバーサイドの具体的処理

WebサーバーがリクエストからDBサーバーに必要なデータを問い合わせ、HTML,CSS,JavaScriptや画像などのデータを送信

用語が沢山出てきたので用語整理

サーバー:リクエストに応じてレスポンスを返すコンピューター
Webサーバー:Webアプリケーションが動いているコンピューター
DBサーバー:データベースのが稼働しているコンピューター

インターネットの基本

ITの基礎中の基礎ネットワーク😎

httpとは

HyperText Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル)」の略
通信のお約束のこと
ホームページ内のファイルなどのデータを受け渡しするときのルールのこと
通信する上でのルールのことを 通信プロトコルという

ホームページ表示までの流れ

  1. ブラウザがwebサーバーにページを要求
  2. webサーバーが要求されたページを渡す
  3. ブラウザがwebサーバーから渡されたページを表示

参考

どのようにインターネットが動くのか

とりあえずアルファベットの用語がたくさん出てきてごちゃまぜになりそうなので一旦整理

IPアドレス

インターネットプロトコルアドレスはPC一つ一つが持つ192.168.1.1のようなコードのこと

ドメイン

ドメインはインターネット上のあるWEBサイトやサーバーがどこにあるかを示す住所のようなもの
IPアドレスは数字で覚えにくくurlでなんのサイトなのかが解らないのに対し、文字列でなんのサイトかわかりやすくWEBサイトやサーバーがどこにあるかを示している。

DNSサーバー

ドメインネームシステムは数字のIPアドレスを文字列のわかりやすいドメインに変換してくれる翻訳機のようなもの

Webサーバー

Webサーバーはwebアプリケーションなどのデータが格納されたPCのことそれぞれIPアドレスを持っている
webサイトを閲覧するときはIPアドレスに問い合わせる必要がある

用語解説はこの辺にしてインターネットの動く流れに移ります

webサイト表示までの流れ

  1. URLにアクセス
  2. URLに含まれるドメインを元にDNSサーバーがIPアドレスに問い合わせる
  3. DNSサーバーがドメインに対応したIPアドレスをもつwebサーバーにデータを要求する
  4. webサーバーから送られたデータをブラウザに表示

参考

OS

パソコンの根幹部分のOSに付いて
よくわからない用語がたくさんあるのでまた用語整理

カーネル

OSの大部分を担当しているソフトウェア
メモリやCPUとのやり取りをする部分

デーモン

常にスタンバイや動作している部分
何も処理するものがないときはスタンバイし、処理の要求が来ると処理しまたスタンバイに戻るバックグラウンドシステム。
目に見えないコンピューターの裏の部分で動作している

シェル

人からの入力をコンピューターに伝える部分
実行を担当するのではなくただコンピューターにシェルから入力された司令を伝える係

バージョン管理

バージョンが管理するのは主にソースコード
変更履歴を線のように管理する

ブランチ

変更を枝分かれさせて共同開発でも困らないようにバージョンを管理する仕組み
多くのバージョン管理システムでは変更を線のようにつなぎ履歴を管理している。
ブランチを使用すると変更があるたびに履歴の線が枝分かれしていくこの仕組みによって複数人が同時に変更をしてもすべてを上書きすることなく一つにまとめることができます。

バージョン管理システムgit

リポジトリ

ファイルの状態を記録する部分

ローカルリポジトリ

ローカル環境(自分のPCなど)に作られるリポジトリ

リモートリポジトリ

GitHubに作られるリポジトリ
複数人で参照できる

クローン

リモートリポジトリをローカルリポジトリにダウンロードすること

コミット

ファイルをローカルリポジトリに保存すること

プル

リモートリポジトリにありローカルリポジトリにない部分をローカルリポジトリに加えること

プッシュ

ローカルリポジトリをリモートリポジトリに送信すること

マージ

枝分かれしたブランチを結合し変更を反映させること

参考

データベース

データの集合体がデータベース

テーブルについて

データベース種類ごとの単位
表形式でデータを管理している

レコード

レコードは、テーブルの行を意味する様々な種類のデータを取り扱う 

カラム

カラムは一つのデータを扱い

フィールド

データベース内の最小単位エクセルでいうところの「セル」

リレーショナルデータベース

APIとは

別のプログラムから機能の一部をリクエストされたときに用意されている窓口

情報セキュリティ

情報セキュリティの三項目

情報の機密性

許可された人のみがアクセスできる状態

機密性を維持する三要素

  • アクセス制限
  • パスワード認証
  • 入室制限

情報の安全性

情報が最新で正しい状態であること

機密性を維持する二要素

  • アクセス履歴利用者の確認
  • 情報の変更履歴データ改ざんの検知

情報の可用性

必要なときに、対象の情報を安全に利用できること

可用性を維持する要素

  • サービスの継続提供

テスト

ソフトウェアテストとは、開発中のソフトウェア(コンピュータプログラム)が意図した通りに動作するかを検証すること。

単体テスト

単体テストは対象のモジュールが意図したとおり正しく機能するかを確認するために行われるもの

結合テスト

複数のモジュールを結合したときに正しく機能するかを確かめるテストで、主にモジュール間の接続点(インターフェース)がうまく機能するかを確認するために行われるもの

システムテスト

開発の最終段階にシステム全体を対象に行われるテスト。


現在多くの人に感動を与るフロントエンドエンジニア目指して就職活動をしています。
こちらもご確認ください

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3