ITの用語集

ITの用語集

学習をしていて、分からない用語が多かったので、こちらに用語をまとめていきます。

アタッチ: 付着する、所属させる
ex)Active Storageなどで、モデルオブジェクトに画像をアタッチするというような感じで使う(モデルオブジェクトに画像が属している)

ポリモーフィック: 特定の親モデルを持たずに様々な親モデルを持つ事ができる関連付けの仕組み
ex) CategoryモデルとTagモデルがあり、どちらのモデルもnameという属性を持つ時にTaxonomyというモデルを作って、これにname属性を持たせ、CategoryモデルとTagモデルがTaxonomyモデルを継承するような感じ

マッピング: 何かと何かを関連づけること(ゲームの世界では、地図を作ること[map]+[現在進行形])
ex)URLと各ページのタイトルをマッピングしてという場合は、URLをタイトルに関連性を持たせるというような感じ

マクロ: 事前に操作手順などを記録しておいて、その内容をまとめて実行できるようにする機能
ex)Excelとかについている機能で、操作手順を記録しておいて、その記録した内容を自動的に実行させる機能のこと

webkit: HTMLレンダリングエンジンの1種

HTMLレンダリングエンジン: Webブラウザの中にありレンダリングをしてくれる部分

レンダリング: HTTPやHTTPSリクエストをしてレスポンスとして返ってきたHTMLを人間が見やすいように整えること

プラグイン: 元々あるソフトウェアに後から追加できる追加機能のこと
イメージで言えば、最初に歩行型のロボットを作成して後から空が飛べるように機能などを拡張した場合、空が飛べる部品の事をプラグインという

キャッシュ: よく使うデータを使いやすいところに準備しておく仕組み
イメージで言えば、ブラウザからWebサイトを見る時は、ブラウザがWebサーバーにリクエストを投げてレスポンスが返ってきて、それをレンダリングしてブラウザに表示するが、レスポンスが返ってきた時にファイルをコピーしておく。これは、ユーザーが次に同じページを見たいとなった時にWebサーバーにリクエストしなくてもコピーしておいたファイルを使えば早く済むためである。

favicon: ファビコンと読み、[favicon.ico],[favicon],[Favicon]と記載するのが一般的
faviconは、そのWebサイトを象徴するアイコンの事で、お気に入りやタイトルバーにアイコンが表示される
ヤフーとか楽天をお気に入りしたときに表示されるアイコンの事。
faviconを設定する時は、HTMLのの中に記述し、拡張子は[.ico]を使う
faviconは、普通の画像ファイルではなく専用のソフトで普通の画像からfaviconに変換するのが一般的

リッスン: 通信を行う際は、ポートが空いていて且つそのポートで対応できるように待ち構えていないといけないが、この状態をリッスンという
イメージで言えば、外に人が居て家の中に人が居る場合に会話が成立する為には、窓が空いていても家の中の人が聞く耳をもっていなければ会話が成立しないこと
(参考記事のAが分かりやすいので、参照してください)

ルータ機器によるファイアウォール機能: ルータでポートを閉じるとルータの部分でパケットを捨ててしまう為、ルータが作っているLAN内のサーバーなどにはパケットが届かなくなる。
クラウドの場合は、物理的なルータが扱えない事が多いが[SecurityGroups]という機能がファイアーウォールの役割を果たしている

サーバーのパケットフィルタ機能: サーバーにはパケットフィルタ機能があって外から入ってくるパケットを遮断できる。

ディレクティブ: コンパイル時にコンパイラーに与える補足情報

CGIプログラム: Rubyなどで記述したプログラムのこと(以下のような使われ方をする)
ブラウザからアクセス→サーバー→CGIプログラム→データベース→CGIプログラム→サーバー→ブラウザ

OGP: [Open Graph Protocol]の略称でSNSでシェアされた際に、ページのURL、タイトル、概要、アイキャッチ画像を表示させる仕組み。
og:title•••ページのタイトル
og:type•••ページのタイプ。WebサイトのTOPページなら[website]、TOPページ以外は[article]、ブログは[blog]
og:description•••ページの説明
og:url•••ページのURL(絶対パスで記述)
og:site_name•••ページの名前
og:image•••ページのアイキャッチ画像(絶対パスで記述)

[Getter]と[Setter]: クラス内でインスタンス変数をセットするのメソッドが[Setter]で、クラス内からインスタンス変数を参照するのがGetter

classFood
  def name=(text)  # Setter
    @name = text
  end
  def name     # Getter
    @name
  end
end

food = Food.new
food.name = "寿司"
food.name => "寿司"

ミュータブルなオブジェクト: クラスの外からオブジェクトのフィールド値を変更できるオブジェクトの事(下記記事を参照)
オブジェクト指向とgetterとsetterとカプセル化 - kosukerino’s blog

イミュータブルなオブジェクト: クラスの外からオブジェクトのフィールド値が変更できないオブジェクトの事(下記記事を参照)
オブジェクト指向とgetterとsetterとカプセル化 - kosukerino’s blog

カプセル化: オブジェクトのフィールド値をクラス外で参照できないようにする事(下記記事を参照)
オブジェクト指向とgetterとsetterとカプセル化 - kosukerino’s blog

OSS(オープンソースソフトウェア): 中身が公開されていて改造したり配ったりしてOKなソフト(何かしらのライセンス制約があることがほとんどなので、確認が必要)

非同期処理: 時間がかかってしまうような重い処理は、後でやる処理としてリスト化して登録し、後から実行する事

ソケット: プログラムとネットワークとの接続口やプログラムでネットワーク通信部分を担当する部分
イメージで言えば、人が脳で何かを考えて話して空気を媒介して誰かに伝わる過程で、何かを考える脳に値するのがプログラムで、言葉を媒介する空気がネットワークで、人が話したり聞いたりする口や耳がソケットになる
※ポイント
ソケットに似たような意味のもので、ポートがあるが両者は別なものである
ソケットは、コンピューター同士を繋ぐコードのようなイメージで、ポートは目的別に識別しているようなイメージ
糸電話で会話する時に例えると、紙コップがポートで、糸がソケット

UNIXドメインソケット: インターネットで利用しているソケット通信(INETドメインソケット通信)とは異なり、ネットワーク経由ではないローカルマシン内でのプロセスが利用するソケットが、UNIXドメインソケット
(参考記事のBが分かりやすいので、参照してください)
)

モデム: 電話回線を使ってインターネットを利用する際に使う機械
インターネットを使う場合の流れは、以下のようになります
パソコンから出たデータは、LANケーブルの中を通り途中で電話回線に切り替わりますが、LANケーブルの中のデータ形式はデジタルで電話回線の中のデータ形式は、アナログになります。
データの形式が変わるので、データの形式を変えなければいけませんが、これをやってくれるのがモデムです。
[○○モデム]と出てきたら「○○のデータを電話線の中を通れるようにする機械という事(例えば、FAXモデムなど)

VPS(Virtual Private Server): VPSでは1台の物理的なサーバーの中に、仮想的に複数のサーバーを構築する。
ホストOSの土台の上にユーザーごとにOSを用意する
共用サーバーは、ホストOSの土台の上で同じOSやメモリなどを使う(HDDのみユーザー毎に分かれている)
(参考記事のCが分かりやすいので、参照してください)

エンコード: データを別の形式に変換すること
URLエンコードだと、URLにはアルファベットしか使えないためURLに日本語を入れると、それに対応した別のアルファベットに置き換えられる
文字エンコードだと、2進数と文字の対応表を別な対応表に切り替えるという意味になる

MVP: 課題を解決するための最低限の機能を作るという概念

・プリコンパイル: あらかじめアセットパイプラインを実行して静的ファイルを生成しておくこと
production環境では、リクエストを高速に処理できるようにあらかじめアセットパイプラインを実行して静的ファイルを生成しておき、生成済みのファイルをリクエストのたびに配信する流れとなっている(production環境でソースコードを更新してサーバを起動する際には、必ずプリコンパイルを実行する必要がある)

参考記事

A: ロミオとジュリエットで学ぶ「ポートが開いてる」と「Listenしている」の違い - Qiita

B: UNIXドメインソケット | IT用語辞典 | 大塚商会

C: VPSとは?レンタルサーバーと何が違う?分かりやすく解説 | カゴヤのサーバー研究室