研修中に覚えたもの 勉強メモ  by駆け出しエンジニア

# はじめに
私は未経験からエンジニアになりました。
なので、IT用語が真面目にわかりません。
なんならITってなんの略？って感じでした。

そんな私の為のメモ帳として**日々綴っていきます**のでお願いします🙇‍♂️
随時見やすいように更新していきますが、ごちゃついています。

windows  `ctrl + F`
mac  `⌘ + F`
で調べたいワードを検索してみてください。
情報無ければごめんなさい。

# IT用語集

## IT(Information Technology)
コンピューターネットワークを使用した情報技術の総称のこと。

## OS(Operating System)
OSとは、ユーザーとハードウェアの間やソフトウェアの間をつなぐ役割を果たします。
見た目や仕組みを提供するのに加え、メモリやCPUといったハードウェアなどの各作業に対して効率的な管理を行う。

## ディレクトリ
windowsなどで使用するフォルダのこと

## バイナリファイル
テキストファイル以外のファイル、文字コードを含んでいるファイル、二進法数字で構成されるなど

## テキストファイル
装飾のない文字だけのデータファイル

## C:(シードライブ)
パソコンに内蔵されているストレージであり、windowsがインストールされているシステムドライブ

## ドライブ
データを記録したり、記録してあるものを呼び出したりする装置のこと

## リカバリ
コンピュータなど故障を復旧させること、コンピュータ処理中のエラーを、何らかの手段を用いて正常な処理にもどすこと

## ドキュメント
説明、解説、報告など目的で作成された文章のこと

## パフォーマンス
システムなどの処理性能や実行速度、通信速度、容量(メモリ)を指す

## オプティマイザー
処理速度の高速化、処理に対するメモリ量などのリソース分量の削減も目的とするソフトウェア

## ライブラリ
単体では使えない部品機能プログラムの塊。
パッケージ、モジュール、関数など
便利な機能を定義したクラス集を再利用しやすいようにまとめたものみたいな感じ。
プログラム全体

## パッケージ
クラスの集まりモジュールの集まり。
機能のプログラム。

## モジュール
ハードウェアやソフトウェアにおけるひとまとまりの機能・要素、
ある機能を実現するプログラムの塊を指す場合に用いる。
クラスプログラム。

## 関数
メソッドとも呼ぶ。
小さい機能のプログラムのこと。

## ライブラリの位置関係
ライブラリ→パッケージ(クラス集まりモジュールの集まり)→モジュール→関数になっている。

## スクリプト
スクリプト言語は簡易的なプログラミング言語の一種で、スクリプト言語で作られたプログラムをスクリプトという

## スクリプトファイル
JavaScript、VBScript、PHP、AppleScriptなどのスクリプト言語で書かれたコマンドまたは命令ファイル

## パフォーマンス(IT)
システムなどの処理性能や実行速度、通信速度、容量(メモリ)を指す

## スコープ
アクセスできる範囲、自分の適用されている場所

## ローカルスコープ
現在のアクセスできる範囲、そこが関数内なら関数内のみで活用できる要素

## グローバルスコープ
起動された時に効果を持つ。変数、関数、分類として(自動変数、プレファレンス変数など)
定義された枠内ならどこでも活用できる。

## エイリアス
データ型などに開発者が別の名前を与えて宣言などに使うことができる仕組みが提供されていることがあり、
この機能および名付けられた別名のことをエイリアスという。
例.
毎回入力めんどいな・・・
`
status → st
`
に略してしまおう！みたいな感じです。

## デベロッパー
ソフトウェアやハードウェアを開発する技術者や企業のことを指す

## デベロップメント
開発、制作などの意味、開発環境などに命名することがある。

## キャメルケース
文を一語につなげて表記する方法のこと


## アッパーキャメルケース
単語先頭を大文字にして繋げる表記方法
例.
`get nameの場合 → GetName`

## ローワーキャメルケース
最初は小文字だが、中間の繋ぎの頭から大文字で表記  
例.
`get nameの場合 → getName`

## スネークケース
単語の繋ぎ目に `_` を使用すること
例.
`get nameの場合 → get_name`

## IDE(統合開発環境ソフト)
エディタ、コマンドプロンプト、コンパイラ、デバッガーが一つになっているもの
例.
`eclipse, Unityなど`

## アクセサ
オブジェクト内部の変数などに外部からアクセスするために用意されたメソッド
例.
`Get, Setなど`

## フォーマッタ
コードを整形する機能、インデントや細かいスペース、改行の位置なども一気に指定のフォーマットに成形する機能

## アルゴリズム
簡単に言ってしまうと手順のこと。
ある結果を求めるための手順は沢山あるのですが、そのすべての手順をアルゴリズムといいます。
例.
`食事→箸を持つ→茶碗を持つ→食事をする→茶碗を置く→箸を置く`
などの一連の流れのこと。

## フローチャート
業務手順、システム、コンピュータアルゴリズムを示す流れ図、(最初から最後までの流れ図)
`順次構造・・・順番に実行`
`分岐構造・・・もしAが~なら別分岐実行`
`反復構造・・・Aが10より小さい場合は、繰り返して実行する`
の三つが基本構造

## フロー
コンピュータプログラムを構成する命令や手続き、処理の流れなど
(物事の流れ、流れの場所、変化の過程)
資源、過程、構造、結果、対象、価値の六つの要素が含まれている。

## チャート
図や表グラフなどを意味する

## エクスポート
変換してデータを出すこと。

## インポート
データを入れて使えるようにすること。

## ユースケース
利用者があるシステムを用いて特定の目的を達するまでの、
双方の間(どんな操作が行われるか)のやり取りを明確に定義したもの。

## コレクション
複数の要素を格納できる複合的なデータ構造のこと(配列、List、Mapなど)

## ハッシュテーブル
配列に似ているが、キーを使用して各値(オブジェクト)を格納する点が違います。
連想配列のこと
例. 学校で例えます。
`キー(出席番号) : バリューの値(名前)`

## 正規表現
いくつかの文字を一つの形式で表現するための表現方法
たくさんの文章の中から容易に見つけたい文字列を検索することができたり、使ってほしくない文字を指定したりできる。

## プリミティブ型
あらかじめ用意されているもっとも基本的な型(データ型)
例.
`int型,
char型など`

## 基本データ型
プリミティブ型の別称
boolean, byte, char, short, int, float, long, doubleの八つが基本データ型。
型によって必要なbitが決まっている。
これらの型の変数の値を保持する変数を基本データ型という

## 参照型
値そのものを保持するのではなく、値が置いてある場所を保持する
そのように、値が置いてある場所を示す(参照型の)値を保持する変数を参照型変数という

## キャッシュ
一度みたWEBページの情報をブラウザに一時的に保存しておく仕組みのこと
利点としてキャッシュが残っていると表示スピードが上がる

## コンストラクタ
クラスからオブジェクトを作成したと際に、自動的に実行される特殊なメソッドのこと。
メンバ変数の初期化などに主に行う。

## 同期処理
複数のタスクを実行する際に一つずつ順番にタスクが実行される方式のこと
必ずプログラムに記載した通りの順番でタスクが処理されるので処理全体を把握しやすい
ただ、タスク処理完了までに時間がかかる

## 非同期処理
あるタスクを実行している最中に、その処理を止めることなく別のタスクを実行できる方式
同期処理よりも同時進行で処理が進んでいくため速い。

## 単体テスト
プログラムが単体で動作するかを確認する
アプリケーション全体の中から一つの部品(クラスや関数)だけを完全に取り出して実行するもの

## 結合テスト
単体テストを終えた各モジュールを組み合わせて、
意図した通りの動作や挙動になっているかを確認するテスト
複数のプログラムを実際に「結合」させてテスト

## システムテスト
開発したシステムが全体として正常に動作するかテスト

## ホワイトボックステスト
システムの内部の構造を理解したうえでそれら一つ一つがいとしたとおりに動作しているかを確認するテスト手法

## ブラックボックステスト
システム内部の構造を理解できていない状態でテストする
メソッドの引数や戻り値、クラスのプロパティ値に着眼点を置きテストを実施します。

## エビデンス
テストが終了した場合の成功・失敗の実行結果のこと
実行結果、ログ、ファイル(入出力がある場合)

## リソース
コンピュータのソフトウェアやハードウェアを動作させるために必要なハードディスク容量やCPUの処理速度、メモリ容量の意味

## アノテーション
データに対して、メタデータと呼ばれる情報タグを付与する作業を指す

## オブジェクト指向
コンピュータプログラムの構造、構成方法の一つで関連するデータの集合体(変数)と、それを操作する手続き(関数)をオブジェクトに一体化し、オブジェクト(クラス)の組み合わせとしてプログラムを記述する記法
ものを組み立てるように表現して、コンピュータに動作させる

## スタック
積み重ねるという意味。
最後に入力したデータが先に出力される構造のこと。
LIFO(Last In First Out)
最後に入れたものを最初に出すこと。

## キュー
行列という意味。
最初に登録したデータから、順に出力される構造のこと。
FIFO(First In First Out)
最初に入れたものを最初に出すこと。

## 値渡し
その値そのモノのコピーを渡すこと。
あくまでコピーなので、その値ではない。

## 参照渡し
値を渡しと違い、その値のコピーを渡すのではなくその値のアドレスを渡すこと。
利点として、値を定義する関数外からでもそのモノ自体の値を変更することができる。

## プロトコル
通信をする上での約束事のこと。
例えば、手紙を書く際に宛名を書かないと誰に対しての手紙なのかわかりませんよね？
通信したいならこれを守ってねという約束事のこと。

## OSI基本参照モデル
国際標準化機構(ISO)によって策定された7階層の通信プロトコル(約束事)の分類。

[参考サイト](https://www.itmanage.co.jp/column/osi-reference-model/)

## TCP/IP
インターネットでのコンピュータ同士が通信を行うためのプロトロル(約束事)。
4階層で構成されている。
[参考サイト](https://www.itmanage.co.jp/column/tcp-ip-protocol/)

## IPアドレス
通信を行う相手のコンピュータを特定するために、コンピュータ1台1台にアドレスを持っています。
これがIPアドレスといい、住所や電話番号のようなものだと思ってください。
IPアドレスは32ビットのビット列で構成されていて、0または1を表す値の1個分が1ビットです。

例.
192.168.**.**的なものです。(*には数字が入ります。)
最初の192.168.**がネットワークアドレスと言いこのコンピュータがどのネットワークに属するかを示す部分。
最後の**がホストアドレスと言いそのコンピュータ自体を識別する部分になります。

## サブネットマスク
IPアドレスの32ビットの内、どこまでがネットワークアドレスなのかとホストアドレスかを示す情報になります。

## グローバルIPアドレス
インターネットの世界で唯一のIPアドレスのこと。
全く同じアドレスは存在してはならない。

## プライベートIPアドレス
そのネットワーク内だけで、有効なIPアドレスのこと。
自身のIPアドレスのことですね。
コンピュータをリモートで接続したい時などに使用されます。

## NAT
プライベートアドレスは、そのネットワークの中のアドレスなのでインターネットの世界では通用しません。
そこで、インターネットに出ていくときには、グローバルIPアドレスに変換します。
この技術のことを、NATといいます。