現場でよく使うIT用語集

## はじめに
現場で使用していた、IT用語をメモ感覚でまとめてみました。

## 用語集
#### 〇JSONファイルとは
JavaScriptのオブジェクト形式の記法で書かれているファイル

#### 〇連想配列で保存されているテキストファイルとは
→JSONファイル

#### 〇連想配列とは
→要素にキー値をつけて羅列して格納できる
キー値があることが連想配列の大きなメリットになる

#### 〇Node.jsとは
JavsScriptの実行環境
JavaScriptはOS上でjavaScriptを実行できる。

#### 〇サーバーとは
サービスを提供する側のコンピューターです。
例えば、メールを送るであったり、ＥＣサイトなどで注文をするなどのサービスはサーバーが提供している

#### 〇クライアント
サーバーからサービスを受け取るコンピューターのこと
基本的には、サーバーが提供してくれたサービスを利用するのが役割
例えば、ユーザーがHPを開くときに、ＨＰのファイルが置いてあるサーバーに
お願いをして、サーバーからＨＰのページをもらう
→クライアントは、サーバーが提供しているホームページのファイルを渡すというサービスを利用した
ということになる

#### 〇フロントエンド
サービス利用者に見えるほうのことを指す。
フロントエンドは、サービスやアプリケーションにおいて、直接ユーザーの目に触れる部分になる。
例えば、画面を表示したり、ユーザーからの操作(フォーム入力など)の受付をする役割を持つ


#### 〇バックエンド
サービス利用者に見えないほうのことを指す。
フロントエンドから受け取ったデータを処理、保存したり、
フロントエンドの要求に応じて、データや機能を提供する構成要素のことを言う
サーバーなどはバックエンドにあたります。


#### 〇フロントエンドとバックエンドの違い
→ＥＣサイトで例えると
フロントエンド
→通販サイトの見た目に関する部分：利用者に見える
バックエンド
→注文や発注などの実際の処理をする部分：利用者に見えない

#### 〇ホスティングとは
外部のサーバを借りること

#### 〇セッション
論理的な意味での、開始から終了までの一連の流れのこと

#### 〇セッションID
開始から、終了まで(セッション)に対して紐づけたID

#### 〇キャッシュ
よく使うデータを取り出しやすい場所にあらかじめ準備しておくこと

#### 〇バイナリデータ
メモ帳などで見ると、ぐちゃぐちゃになっているデータのこと

#### 〇実行ファイル
中身がバイナリデータなプログラムファイルのこと
または、ファイルの種類を表す拡張子が.exeなファイルのこと

#### 〇インタプリタ
プログラムの中身を、人間がわかる言葉からコンピュータがわかる言葉へ翻訳しながら動かすやりかた

#### 〇バッチファイル
コマンドプロンプトに打ち込むコマンドをまとめて書いたファイル

#### 〇認証と認可の違い
認証は通信の相手が誰であるかを確認することで、認可は特定のユーザーや行為に対して許可や権限を与えれること

#### 〇フェデレーションと認証の違い
個々のアプリケーションに対して認証を提供し、フェデレーションは異なるアプリケーション間で認証を共有する仕組み

#### 〇カスタムドメイン
短いドメイン名を追加でつける

#### 〇SSO
シングルサインオンの略、ユーザーがログイン後に、異なるアプリケーション間でログイン情報を共有する仕組み

#### 〇SLO
シングルログアウトの略、一つのアプリでログアウトすると、異なるアプリもログアウトされる仕組みのこと

#### 〇リモートストレージ
ネットワーク越しに使えるようになっている、データをしまう箱

#### 〇ローカルストレージ
リモートストレージの逆、ローカルにデータをしまう箱のこと

#### 〇アクセシビリティ
どれくらい、いろんな人が気軽に利用できるかのこと
→どれくらい想定して対応してあるの？ってこと

#### 〇アクセス権限とは
何かにアクセスする権限、システムやネットワーク上のリソースにアクセスする際に、
どのユーザーがどの程度の範囲でアクセスすることができるかを制御するための機能。
例えば、ファイルやフォルダーには、読み取り専用、書き込み可能、実行可能などの権限がある。
アクセス権限は、セキュリティを強化し、機密性の高い情報やシステムに対する不正アクセスを防止するために必要な機能

#### 〇JSONファイルとDBで管理する時の違い
・データの検索：DBはインデックスを使用してデータを高速に検索できますが、JSONファイルでは全文検索しかできない。
・複数のユーザーからの同時アクセス：DBは同時に複数のクライアントからのアクセスに対応できますが、JSONファイルは同時に1つのクライアントしかアクセスできない。
・データの整合性：DBはトランザクションを使用してデータの整合性を保つことができるが、JSONファイルではトランザクションがない。
・スケーラビリティ：DBはクラスタリングやレプリケーションなどの機能を使用してスケーラビリティを高めることができるが、JSONファイルはスケーラビリティが制限される。
・データのセキュリティ：DBはアクセス制御や暗号化などの機能を使用してデータのセキュリティを高めることができるが、JSONファイルはセキュリティが低い。
総じて、JSONファイルは小規模なデータ管理に適しているが、大規模で複雑なデータを管理する場合はDBを使用することが望ましい。

#### 〇スクラッチ
すでに存在している何かを土台とせず、新しくゼロから作ること

#### JSONとDBの形式の違い
json
- 計算量が相対的に多い
- メモリ使用量が相対的に多い(本質的にメモリにすべて展開しないとparseできない)
- javascriptのデータ型と自然に対応付けされるため親和性が高い
- OSのファイルシステムに読み書きできる権限のみで実装可能で手軽
- 永続データを保存するには心もとない -> ASID特性がない

#### DBMS
- 計算量が相対的に少ない(レコードを取得がO(log N)、あるレコードが固定長フィールドの特定列の取得がaddress演算で済む。O(1)!!)
- メモリ使用量が相対的に少ない(すべてロードしなくとも特定のレコードの抽出が可能。関連：cursor)
- 準備に手間がかかる
- ASID特性を備える

#### 〇apatch
Webサーバのソフト

#### 〇ダンプファイル
ファイルの中身を加工しないで、そのまま吐き出すファイル

#### 〇マスタデータ
何かの基礎となるデータ。システムを使う最初の段階からないと困るデータ
システムを動かすことによって蓄積されていくデータはトランザクションデータという。

#### 〇マスタ
マスタデータを入れておく箱のこと

#### 〇ウィジェット
ウィジェットは、グラフィカルユーザーインターフェース（GUI）上で特定の機能や情報を提供する小さなアプリケーションや要素のことを指します。
ウィジェットは通常、デスクトップやウェブページ、モバイルアプリケーションなどのユーザーインターフェース上に配置され、ユーザーが簡単にアクセスできるようにします。
ウィジェットは、ユーザーが頻繁に利用する機能や情報に簡単にアクセスする手段として非常に便利です。
また、ウィジェットは通常、カスタマイズ可能で、ユーザーが自分のニーズや好みに合わせて配置や外観を変更することができます。

#### 〇GUI
GUI（Graphical User Interface）は、ユーザーがコンピュータやソフトウェアと対話するためのグラフィカルな表示や操作手法のことを指します。
GUIは、視覚的な要素（ウィンドウ、アイコン、ボタンなど）やポインティングデバイス（マウス、タッチスクリーン）を使用して情報を表示し、ユーザーが操作を行えるようにします。
GUIの利点は、直感的な操作や視覚的なフィードバックにより、ユーザーが作業を容易に行えることです。
さらに、GUIは複雑なタスクをユーザーが簡単に実行できるようにするため、ユーザビリティや生産性の向上にも貢献しています。
現代のオペレーティングシステムやアプリケーションソフトウェアのほとんどは、GUIを使用しています。

#### 〇TCP/IP
プロトコルの集まりを表す用語。HTTPもこれの一種。


## 最後に
都度、追記していきます。