技術系の英単語を深掘りしよう✨

# はじめに
最近、技術系の英語の動画を見ることが多く、単語などもわからないことも多かったりするので、調べたら最近の記事でこんなものがあり、凄くよくまとめられていました。

https://qiita.com/yoshiki_abe/items/e943df404b56f1126daf

ただやっぱり、辞書的にまとめられているので覚えづらく、パッと頭の中で変換されるかと言われるとそうではないです。

そこで今回はいくつか重要な英単語を語源や使われる用途（結構フロントに寄っています）に応じて調べたものをわかりやすく書いていこうかと思います。


# 名詞編

お先に意味から書いてます、知らないものがあったら例とともに解説を書いているので探してみてください！

:::note info  
### asynchronous（非同期）  
- **意味:** 処理が同時に行われず、ひとつの処理が終わるまで待たないこと。  
- **語源:** **a(反対)+syn(共に)+chrono(時間)** - 時間が一致しない状態。

### suspense（一時中断）  
- **意味:** 処理を一時的に停止し、他の操作を優先すること。  
- **語源:** **sub(下に)+pend(吊るす)** - 吊るされた状態から転じて一時中断。

### configuration（設定、構成）  
- **意味:** システムやアプリケーションの設定や構成を指す。  
- **語源:** **con(共に)+figurare(形作る)** - 一緒に形を作ること。

### inheritance（継承）  
- **意味:** 親クラスの性質を子クラスが受け継ぐこと。  
- **語源:** **in(中に)+heritage(遺産)** - 遺産を受け継ぐという意味。

### payload（データ）  
- **意味:** 通信や処理で送受信されるデータの中身。  
- **語源:** **pay(運ぶ)+load(荷物)** - 運ばれる荷物。

### transaction（取引、処理）  
- **意味:** 一連の操作をまとめて実行し、すべて成功または失敗することを保証。  
- **語源:** **trans(超えて)+action(行動)** - 一連の行動。

### index（索引、インデックス）  
- **意味:** データの検索を効率化するための目印や位置情報。  
- **語源:** **in(中に)+dex(指し示す)** - 指し示すもの。

### module（モジュール）  
- **意味:** 機能ごとに分割されたコードの単位。  
- **語源:** **modulus(単位)+ule(小さいもの)** - 小さな単位。

### prototype（原型）  
- **意味:** オブジェクトやクラスの基本的な構造やメソッド。  
- **語源:** **proto(最初の)+type(型)** - 最初の型。

### property（特性）  
- **意味:** オブジェクトが持つデータや特性を表す。  
- **語源:** **proprius(自分のもの)+ty(名詞化)** - 自分の持ち物。

### interface（接点）  
- **意味:** 異なるシステム間でやり取りを定義するもの。  
- **語源:** **inter(間に)+facies(顔)** - 顔と顔の間の接点。
:::


### asynchronous(非同期)

javascriptだとawaitやasyncなどで使う`async`がこの略語になりますね。

<font color="Salmon">**a(反対)+syn(共に)＋chrono(時間)+ 名詞形**</font>

synchtronizeはよくシンクロとか言いますよねこれは同時に物事が起こり、つまり同期的であり、片方が遅れるとかはありません。
これに対してasynchronizeはシンクロしない、つまり一つの処理が終わるまで待つ、つまり非同期であるということです。


---

### suspense(一時中断)

Reactなどでは、`suspense`として、あるものを読み込むときに時間がかるものなどにラップすることで、それ以外のものを先に表示し、UXを向上させるときに使ったりします。

<font color="Salmon">**sub(下に)+pend(吊るす)**</font>

サスペンス映画などでお馴染みのこの単語、吊るされているから緊張感というふうになったり、吊るされたまま→一時中断という意味にもなります。

---

### configuration（設定、構成）

Next.jsの`middleware`では、`config`オブジェクトを使って通るルートを設定するなど、アプリケーションの挙動をカスタマイズします。

<font color="Salmon">**con(共に)+figure(形作る)+名詞形**</font>

「configure」は何かを形作る、設定するという意味で、この名詞形が`configuration`です。システムやアプリケーションの挙動を形作るものを「設定」と呼びます。

---

### inheritance（継承）

`inheritance`は、オブジェクト指向プログラミングで「親クラスの性質を子クラスが受け継ぐ」ことを指します。

<font color="Salmon">**in(中に)+heritage(遺産)**</font>

「遺産を受け継ぐ」という意味。たとえば、親クラスが持つ能力（メソッド）が子クラスにも自動的に引き継がれる様子は、家業を継ぐ親子のようなものです。

---

### payload（ペイロード、データ）

`payload`は、通信や処理において送受信されるデータの内容を指します。たとえば、APIリクエストの中に含まれるJSONが`payload`です。

<font color="Salmon">**pay(運ぶ)+load(荷物)**</font>

「運ばれる荷物」というイメージ。ピザデリバリーの箱の中身が`payload`です。

---

### transaction（取引、処理）

`transaction`は、一連の操作をまとめて実行し、その全てが成功するか、または全てが失敗することを保証します。たとえば、データベースでの挿入や更新が失敗した場合、途中の操作を取り消す仕組みです。

<font color="Salmon">**trans(超えて)+action(行動)**</font>

「一連の行動をまとめる」という意味。コインランドリーで洗濯、すすぎ、乾燥をすべて完了しないと終わらない一連の作業のようです。

---

### index（索引、インデックス）

`index`は、データの検索を効率化するための「索引」を意味します。配列では要素の位置を示し、データベースでは検索速度を向上させます。

<font color="Salmon">**in(中に)+dex(指し示す)**</font>

「指し示す」という意味。図書館で本の場所を示すカードのように、データの位置を簡単に見つけられるようにする仕組みです。

---

### module（モジュール）

`module`は、コードを機能ごとに分割し、それぞれ独立して動作可能にした単位を指します。`import`や`export`を使って他の部分と連携できます。

<font color="Salmon">**modulus(単位)+ule(小さいもの)**</font>

「小さな単位」を意味します。レゴブロックのように、組み合わせて大きな仕組みを作るイメージです。

---

### prototype（プロトタイプ、原型）

`prototype`は、JavaScriptでオブジェクトやクラスが持つ基本的な構造やメソッドのことです。プロトタイプチェーンによって、オブジェクトが共通の性質を持ちます。

<font color="Salmon">**proto(最初の)+type(型)**</font>

「最初の型」という意味。ハンバーガーショップのマニュアルのように、全店舗が同じやり方を継承する仕組みです。

---

### property（プロパティ、特性）

`property`は、オブジェクトが持つデータのことです。例えば、オブジェクトのキーと値のペアがプロパティに該当します。

<font color="Salmon">**proprius(自分のもの)+ty(名詞化)**</font>

「自分の持ち物」という意味。スーツケースに名前シールが貼られているように、オブジェクトに属するものを指します。

---

### interface（インターフェース、接点）

`interface`は、オブジェクトやクラスの設計図を定義するものです。TypeScriptでは、型安全な開発のために用いられます。

<font color="Salmon">**inter(間に)+facies(顔)**</font>

「顔と顔の間の接点」という意味。プラグとコンセントの接続部のように、異なる部分同士のやり取りを定義するものです。




# 動詞編

:::note info  
### convert（変換する）  
- **意味:** ある形式や状態を別のものに変更すること。  
- **語源:** **com(共に)+vertere(回転する)** - 回転させて変えること。

### contract（契約、収縮する）  
- **意味:** 約束や契約を結ぶこと、またはサイズが小さくなること。  
- **語源:** **con(共に)+trahere(引く)** - 一緒に引くことで収縮する。

### encrypt（暗号化する）  
- **意味:** 情報を暗号化して、第三者が理解できない形式に変えること。  
- **語源:** **en(中に)+crypt(隠す)** - 隠すように暗号化する。

### batch（バッチ、一度にまとめて処理）  
- **意味:** 一度にまとめて処理すること。  
- **語源:** **bache(パン焼き窯)+batch(まとめて焼く)** - 一度にまとめて処理する。

### deprecate（非推奨とする）  
- **意味:** 使用を避けるべきだとすること、古くなって推奨されない機能。  
- **語源:** **de(否定)+precari(祈る)** - 祈りを捨てる、推奨しなくなる。

### initialize（初期化する）  
- **意味:** 初期の状態に設定すること。  
- **語源:** **init(開始)+ialize(動詞化)** - 初めの状態を設定する。

### implement（実装する）  
- **意味:** 実際に機能やシステムを作り上げること。  
- **語源:** **in(中に)+plere(満たす)** - 中に満たす、実行する。

### parse（解析する）  
- **意味:** データを細かく分解して理解すること。  
- **語源:** **pars(部分)+are(動詞化)** - 部分に分ける、分析する。

### aggregate（集約する）  
- **意味:** 複数のものを一つにまとめること。  
- **語源:** **ad(向かって)+greg(群れ)** - 群れを集める。

### extract（抽出する）  
- **意味:** 必要な情報を取り出すこと。  
- **語源:** **ex(外に)+trahere(引く)** - 外に引き出す。

### iterate（反復する）  
- **意味:** 同じことを繰り返し行うこと。  
- **語源:** **iter(再び)+are(動詞化)** - 再び行う、繰り返す。
:::



### convert（変換する）

`convert`は、ある形式や状態から別の形式や状態に変換することを指します。たとえば、ファイル形式を変換する操作です。

<font color="Salmon">**con(共に)+vertere(回転させる)**</font>

「方向を変える」という意味。例えるなら、水を氷に変えるように、物事の形を完全に変える感じです。

---

### contract（契約する、縮小する）

`contract`は、契約を結ぶことや、物体が縮小することを意味します。例えば、文字列の長さを縮める操作などです。

<font color="Salmon">**con(共に)+tract(引っ張る)**</font>

「引っ張って縮める」という意味。布を縮めるように、元の状態を小さくする感覚です。

---

### encrypt（暗号化する）

`encrypt`は、データを暗号化して読み取れないようにすることを意味します。例えば、パスワードを暗号化して保管する操作です。

<font color="Salmon">**en(中に)+crypt(隠す)**</font>

「中に隠す」という意味。箱に鍵をかけて中身を見えなくするイメージです。

---

### batch（バッチ処理）

`batch`は、一度にまとめて処理することを指します。例えば、複数のデータをまとめて一度に送信する処理です。

<font color="Salmon">**battu(打つ)+ch(名詞化)**</font>

「まとめて一度に行う」という意味。たくさんのパンを一度に焼くような感覚です。

---

### deprecate（非推奨にする）

`deprecate`は、ある機能や技術が時代遅れになり、推奨されなくなることを意味します。例えば、古いAPIが非推奨になった場合などです。

<font color="Salmon">**de(否定)+precari(願う)**</font>

「願うことをやめる」という意味。古い道具を使わなくなって、新しい道具を使う感じです。

---

### initialize（初期化する）

`initialize`は、何かを初めて設定することを意味します。例えば、変数に初期値を設定することです。

<font color="Salmon">**in(中に)+initialize(始める)**</font>

「始める」という意味。新しいゲームを起動したときに、最初の設定を行う感じです。

---

### implement（実装する）

`implement`は、計画や仕様を実際に作成・実行することを意味します。例えば、機能をコードとして実装することです。

<font color="Salmon">**in(中に)+plere(満たす)**</font>

「中に満たす」という意味。設計図に沿って実際の家を建てるような感じです。

---

### parse（解析する）

`parse`は、データを細かく解析して意味を理解することを指します。例えば、JSONデータを読み取って処理する操作です。

<font color="Salmon">**pars(分ける)+e(動詞化)**</font>

「分けて理解する」という意味。パズルのピースを分けて、全体像を把握するようなイメージです。

---

### aggregate（集約する）

`aggregate`は、個々の要素をまとめてひとつにすることを意味します。例えば、複数のデータを集めて合計値を出す処理です。

<font color="Salmon">**ag(共に)+gregare(集める)**</font>

「共に集める」という意味。いくつかの小さな果物をひとつの籠に集める感じです。

---

### extract（抽出する）

`extract`は、必要なものを取り出すことを指します。例えば、テキストから特定の情報を抽出する操作です。

<font color="Salmon">**ex(外に)+tract(引っ張る)**</font>

「外に引っ張り出す」という意味。鉱石を掘り出すように、特定のデータや情報を引き出す感覚です。

---

### iterate（反復する）

`iterate`は、何度も繰り返して処理することを意味します。例えば、配列の各要素を一つずつ処理する操作です。

<font color="Salmon">**iterare(繰り返す)**</font>

「繰り返す」という意味。ひたすら歩き続ける行進のような感覚です。


# 形容詞編

:::note info  
### arbitrary（任意の）  
- **意味:** 決まった基準がなく、自由に決定されるもの。  
- **語源:** **arbitr(判断)+ary(形容詞化)** - 判断に基づく。

### volatile（揮発性の、不安定な）  
- **意味:** 一時的で、すぐに変化するものや状態。  
- **語源:** **volat(飛ぶ)+ile(形容詞化)** - 飛び去るような。

### trivial（些細な）  
- **意味:** 重要ではない、取るに足らないもの。  
- **語源:** **tri(三つの)+via(道)** - 三叉路での些細な話題。

### intuitive（直感的な）  
- **意味:** 見ただけで理解できるようなもの。  
- **語源:** **in(中に)+tueri(見る)** - 見て理解する。

### interactive（対話的な）  
- **意味:** ユーザーとのやり取りが可能なもの。  
- **語源:** **inter(間に)+active(活動的な)** - 互いに作用する。

### comprehensive（包括的な）  
- **意味:** 必要な情報が一通り揃っているもの。  
- **語源:** **com(共に)+prehendere(掴む)** - すべてを掴む。

### robust（堅牢な）  
- **意味:** エラーや問題に強い仕組みや状態。  
- **語源:** **robur(力)+ust(形容詞化)** - 力強い。

### portable（移植可能な）  
- **意味:** 環境や場所を問わず動作するもの。  
- **語源:** **portare(運ぶ)+able(可能な)** - 持ち運び可能。

### mandatory（必須の）  
- **意味:** 絶対に必要であること。  
- **語源:** **mandare(命じる)+ory(形容詞化)** - 命じられた。

### invalid（無効な）  
- **意味:** 規定に合わない、または動作しない状態。  
- **語源:** **in(否定)+valid(有効)** - 有効ではない。

### optimize（最適化する）  
- **意味:** 性能や効率を最大化すること。  
- **語源:** **optimum(最善)+ize(動詞化)** - 最善を目指す。

### optional（任意の）  
- **意味:** 必須ではなく選択可能であること。  
- **語源:** **option(選択)+al(形容詞化)** - 選択できる。

### redundant（冗長な、余計な）  
- **意味:** 繰り返しや余計な情報がある状態。  
- **語源:** **re(再び)+undare(あふれる)** - あふれたもの。

### resilient（回復力のある）  
- **意味:** 問題があってもすぐに回復できる性質。  
- **語源:** **re(再び)+silire(跳ね返る)** - 跳ね返る力。

### compatible（互換性がある）  
- **意味:** 異なるシステム間で動作可能なこと。  
- **語源:** **com(共に)+pati(耐える)** - 一緒に苦労を乗り越える。

### persistent（永続的な）  
- **意味:** 必要に応じて持続するが変更可能なもの。  
- **語源:** **per(通して)+sistere(立ち続ける)** - 立ち続ける。

### permanent（永久的な）  
- **意味:** 永久に続く、変更が想定されないもの。  
- **語源:** **per(完全に)+manere(留まる)** - 完全に留まる。

### temporary（一時的な）  
- **意味:** 限られた時間だけ存在するもの。  
- **語源:** **tempor(時間)+ary(形容詞化)** - 時間に関係する。
:::


### arbitrary（任意の）

JavaScriptで`Math.random()`が返す値は`arbitrary`（任意の）数字です。つまり、予測不能でランダムな値です。

<font color="Salmon">**arbitr(判断)+ary(形容詞化)**</font>

「決まった基準がない」という意味。スロットマシンの結果を決める仕組みのような感じですね。

---

### volatile（揮発性の、不安定な）

メモリ上に一時的に保存される値や一時的な状態は`volatile`（揮発性の）です。例えば、`let`で定義した変数の値が再代入されやすいことに通じます。

<font color="Salmon">**volat(飛ぶ)+ile(形容詞化)**</font>

「飛んでいってしまう」というイメージ。氷が溶けて蒸発するように、一時的で消えやすい状態です。

---

### trivial（些細な）

明らかに分かりきった処理や、小さなバグ修正を`trivial`（些細な）と言います。

<font color="Salmon">**tri(三つの)+via(道)**</font>

「三叉路での無駄話」という語源。例えるなら、関数に「1+1=2」というコメントをわざわざ書くのは`trivial`ですね。

---

### intuitive（直感的な）

JavaScriptの`array.map()`メソッドは直感的で、使い方が`intuitive`（直感的）です。配列の各要素を変換する操作が一目で分かります。

<font color="Salmon">**in(中に)+tueri(見る)**</font>

「見て分かる」ような使いやすさ。スマホのスワイプ操作をイメージすると分かりやすいです。

---

### interactive（対話的な）

Webアプリは、ユーザーが操作できる部分があるため`interactive`（対話的）です。たとえば、ボタンをクリックすると表示が変わる仕組みです。

<font color="Salmon">**inter(間に)+active(活動的な)**</font>

「お互いに活動する」という意味。例えるなら、タッチパネルでボタンを押すと反応が返ってくる感覚です。

---

### comprehensive（包括的な）

JavaScriptの公式ドキュメントは`comprehensive`（包括的）で、言語仕様やメソッドの使い方がすべて網羅されています。

<font color="Salmon">**com(共に)+prehendere(掴む)**</font>

「すべてを掴む」という意味。全種類のスパイスを揃えたキッチンのように、必要な情報が一通り揃っている状態です。

---

### robust（堅牢な）

エラーハンドリングをしっかり書いたプログラムは`robust`（堅牢）です。例外が発生してもアプリが落ちないように設計されています。

<font color="Salmon">**robur(力)+ust(形容詞化)**</font>

「力強い」というイメージ。岩で作られた橋が嵐でも壊れないような強さを想像してください。

---

### portable（移植可能な）

JavaScriptのコードは、ブラウザやNode.js環境など多くの場所で動くため`portable`（移植可能）です。

<font color="Salmon">**portare(運ぶ)+able(可能な)**</font>

「持ち運びできる」という意味。ノートパソコンやUSBメモリのように、どこでも使える感覚です。

---

### mandatory（必須の）

フォーム入力で`required`属性が付いている場合、そのフィールドは`mandatory`（必須）です。ユーザーは必ず入力しないと送信できません。

<font color="Salmon">**mandare(命じる)+ory(形容詞化)**</font>

「命令された」という意味。映画『マンダトリアン』もあったりしましたよね。なんでマンダトリアンだったんさろう...

### invalid（無効な）

`invalid`は、入力が規定に合わない場合や、形式が正しくない場合に使われます。たとえば、メールアドレス欄に「abcd」と入力すると無効です。

<font color="Salmon">**in(否定)+valid(有効)**</font>

「有効ではない」という意味。例えるなら、切符が改札機で「ピッ」とならない状況です。

---

### optimize（最適化する）

`optimize`は、性能や効率を最大化することを指します。たとえば、画像を圧縮してWebページの読み込み速度を上げるようなことです。

<font color="Salmon">**optimum(最善)+ize(動詞化)**</font>

「最善を目指す」という意味。カップラーメンのお湯の温度と待ち時間を完璧に調整して、最高の味を引き出すようなものです。

---

### optional（任意の）

`optional`は「必須ではない」という意味。たとえば、オプションの設定や、存在しなくても動作する項目などを指します。

<font color="Salmon">**option(選択)+al(形容詞化)**</font>

「選択できる」という意味。ビュッフェで「取ってもいいし、取らなくてもいい」料理のようなものです。

---

### redundant（冗長な、余計な）

`redundant`は、繰り返しや余計な情報があることを指します。たとえば、同じコードを何度も書いてしまう場合などです。

<font color="Salmon">**re(再び)+undare(あふれる)**</font>

「水があふれているように余計」というイメージ。鍋からあふれたスープは、いくらおいしくても必要ないですよね。

---

### resilient（回復力のある）

`resilient`は、問題やエラーが発生してもすぐに回復する力を指します。たとえば、システムが落ちてもすぐ再起動できる設計です。

<font color="Salmon">**re(再び)+silire(跳ね返る)**</font>

「跳ね返る力がある」という意味。ゴムボールのように、落ちてもすぐ戻る性質です。

---

### compatible（互換性がある）

`compatible`は、異なるシステムやバージョン間で互いに動作可能なことを指します。

<font color="Salmon">**com(共に)+pati(耐える)**</font>

「一緒に苦労を乗り越えられる」というイメージ。異なるメーカーのイヤホンでも同じジャックで使える状況です。

---

### persistent（永続的な）とpermanent（永久的な）とtemporary（一時的な）

- **persistent:** 「永続的」だが、必要に応じて変更や削除が可能。たとえば、ローカルストレージに保存されたデータ。
- **permanent:** 「永久的」で、基本的には削除や変更を想定しないもの。たとえば、データベースに書き込まれた変更不可のデータ。
- **temporary:** 「一時的」で、特定の条件下でのみ存在するもの。たとえば、セッションストレージに保存されたデータ。

<font color="Salmon">**per(完全に)+manere(留まる)**</font>  
<font color="Salmon">**per(通して)+sistere(立ち続ける)**</font>  
<font color="Salmon">**tempor(時間)+ary(形容詞化)**</font>

「persistentな雪だるま（屋内に入れると溶ける）」vs「permanentな氷の彫刻（絶対溶けない）」vs「temporaryなアイスクリーム（食べるまでが命）」と考えると覚えやすいです。


一時期語源に少しハマり、面白くて本まで買ってしまったこちらの語源サイトも宣伝しておきます。

https://gogengo.me/