【50音順】エンジニアが使いそうな用語【あ~そ】

# はじめに

これから記述するものは、プログラミング初学者 かつ 個人的見解によりまとめたものです。
就職活動中や転職後に会話が成り立たないなんてことになるのが嫌なので書いたものです。
収集方法は求人サイト、Twitter、学習本などからかき集めています。

間違いや追加用語のご指摘があればぜひよろしくお願いいたします！
今回は**【あ~そ】**から始まるIT用語についてです！
(ビジネス用語に近いものも少し混じってますがご了承ください。)

最終的に50音全てまとめていきたいと思います！

# あ行

## IaaS(アイアース or イアース)
Infrastructure as a Serviceの略。
サーバー、ストレージ、ネットワークなどのハードウェアやインフラまでを提供するサービス。

## IT
コンピューターとネットワークを使って進歩をもたらすこと。
一般には**コンピューターとネットワークを利用した技術の総称**。

###ITリテラシー
ITに関する理解力や基本技能のこと。
リテラシーは直訳すると「理解力・読解力、学習の基本技能」のこと。

使い方だけでなく、不適切な利用をしないための**モラル**(誹謗中傷など)も、ITリテラシーに含まれる。

## アサイン
割り当てる、対応させる。
ある特定の資源や機能、処理、役割などを、記号や番号、操作などを割り当てること。

## アジャイル開発
システムやソフトウェア開発におけるプロジェクト開発手法の一種。(従来はウォーターフォール開発)
チームを組んで**「要件定義→設計→テスト→リリース（運用）」**といった開発工程を、1つの機能を単位とした小さいサイクルで繰り返す**「反復増加タイプ」**。
アジャイルは直訳すると、「素早い・機敏な・頭の回転が早い」と言う意味。

**ポイント**

- ソフトウェアの開発期間の短縮が見込める。
- 開発中に発生するさまざまな状況に応じて開発を進めるため、顧客に寄り添える。
- エンジニアだけでなく、顧客も巻き込んだチームでシステムの開発をする。
- 各工程で発生した小さなエラーを修正しながら開発できるため、コストがあまりかからない。
- 思いつきのままプロジェクトを進めると無駄な作業が増える。
- メンバー間の意思疎通がズレていると、不当な実装や無駄なコストがかかることも。
- スケジュールの管理が難しい。(進捗具合の把握が難しくコントロールしにくい)

[アジャイル開発について](https://udemy.benesse.co.jp/development/system/agile.html)

## As-Is(アズイズ)
現状の状態のこと。システム化計画で改善すべきところを洗い出した姿。
To-beと並行してよく使われる。

## アプリケーション
アプリケーションソフトウェアの省略表現。OS以外のソフトウェア全般のこと。
パソコンやスマートフォンなどを使って何かをするときに何かしらのアプリケーションを起動し、作業している。
昨年ではスマホの普及をきっかけに、アプリケーションをアプリと略す傾向があるが、それだけが全てではない。
直訳すると、「申請」、「適用」。

[アプリケーションについて](https://career-picks.com/business-yougo/application/)

## EC
Electronic Commerceの略。電子商取引のこと。インターネットを利用した小売ビジネスの総称。
インターネットや専用線などのネットワークを利用して、モノやサービスを売買すること全般。
**「Eコマース」**とも呼ばれている。

## インフラ
- 社会における「インフラ」は、道路や水道といったものを指し、ITの視点で見る「インフラ」とは、社内インフラの一つ。
- 企業活動をIT(情報技術)の面から支え、基盤となるシステムのことを指す。
- 大きくハードウェア、ソフトウェアの二つに分けられる。
**ハードウェア**
パソコン、サーバー、ストレージ、ネットワークなど。
**ソフトウェア**
OS、ミドルウェアなど

- ITインフラの構築には、計画・設計・構築・テスト・運用の順で進める。

[ITインフラについて](https://www.itscom.co.jp/forbiz/column/office-environment/1087/)

## Webシステム
- インターネット上で利用できるサービスやシステムのこと。(従来はスタンドアロン型やクライアントサーバ型)
- Webシステムは、サーバー上にデータが保存されており、インターネット環境があればいつでもサービスを利用できる。
(例：ECサイト、ネットオークション、ネットバンキングシステムなど)
- 基本的にPCやスマートフォン、タブレットといったWebブラウザが搭載されている機器で利用することができ、Windows、Android、iOSなどのOSを問わない。
- サーバ側のプログラミングを修正するだけで昨日の修正・更新が可能なため、メンテナンス性が高いと言える。

[Webシステムについて](https://hnavi.co.jp/knowledge/blog/web-system/#:~:text=Web%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AF%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E4%B8%8A,%E3%81%AA%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A8%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82)

## Webアプリケーション
「Web」で使用される「アプリケーション」のこと。**ある目的のために作成されたプログラム**。
(Web上で商品の売買をしたり、Web上で他者とコミュニケーションをとったり )

## ウォーターフォール開発
開発現場でよく用いられる手法の一つ。開発手順を一つずつ確認しながら確実に工程を進めていく。
最初の段階で、開発体操のソフトウェアの機能
を全て決めてしまう。
開発担当者や責任者、クライアントなどが、各工程の成果物を確認し、OK!が出た時点で進む。
**「企画」、「設計」、「実装」、「テスト」 に分割**し、それぞれの工程は決められた技術者が担当する**「工程分割タイプ」**。

**ポイント**

- プロジェクト全体のスケジュールを立てやすい
- 予算やSEの手配がスムーズ(開発当初の見積も計画通りに各工程を進めるため)
- 進行中に問題や仕様変更が起こると、大きな手間がかかる
　(各工程を遡って戻り、現在のフェーズも修正しなければならないため)
- WBSの作成に時間がかかる
- 成果物作成に時間がかかり、リリースに時間がかかる(長期期間に渡ることで仕様変更などのアクシデントも)

[ウォーターフォール開発について](https://backlog.com/ja/blog/advantages-and-disadvantages-for-waterfall-model/)

## HTTP
サーバーとブラウザなどの送受信をするための形式。
「Hypertext Transfer Protocol」の略。
この通信方法をHTTP通信と呼ぶ。この通信にHTMLなどが含まれていて、それを画面に表示することでWebアプリケーションを使えている。

## HTTPS
httpの通信を暗号化して送受信をする。
クレジットカード決済や個人情報の登録などをする際に用いる。
「HTTP over SSL/TLS」の略。
「SSL」は「SecureSockets Layer」、「TLS」は「Transport Layer Security」の略で、どちらもデートの暗号化をして送受信する技術のことを指す。

Googleでは、2014年からhttpsの推奨を強くしている。
[Googleのhttps推奨公式ブログ](https://webmaster-ja.googleblog.com/2014/08/https-as-ranking-signal.html)

## SIer(エスアイヤー)
顧客(クライアント)の要望に応じて、ソフトウェアの設計や運用、コンサルティングに至るまで様々な仕事を請け負うこと。
クライアントのニーズを汲み取る力や、指揮力が求められる傾向が高い。

SIは、System Integration(システムインテグレーション)の略称。
システムインテグレーションとは、「システム開発や運用などを請け負う事業、またはサービスのこと」を指す。
この事業やサービスを請け負う企業のことを**System Integration**(システムインテグレーション)、または縮めて**SIer**(エスアイヤー)と呼ぶ。

[SIerについて](https://hnavi.co.jp/knowledge/blog/sier/)

## SES
システムエンジニアリングサービスの略。
委託契約の一種で、ソフトウェアやシステムの開発・保守・運用などの特定の業務に対して、
**技術者を派遣する、技術支援サービスのこと**を指す。
エンジニアのスキルや労働力を提供。(ITスキルを求められる傾向が高い)

[SESについて](https://type.jp/et/feature/14654/)

## SSL
個人情報やクレジットカード情報をランダムな文字列に暗号化してくれる。
[SSLについて](https://www.onamae.com/server/bepossible/ssl/?gclid=Cj0KCQiA7YyCBhD_ARIsALkj54pas1pchZOXFjoALZB-0sYo5_7QwtTVkaN8Xk-KAeWBlCr8IeFQnvIaAib2EALw_wcB)

## FTP
ファイルを送受信する時に使う決まり事。(複数ある通信プロトコルの一つ)
File Transfer Protocolの略。

この通信プロトコルをコンピューターが認識できないと、サーバーとクライアント間でファイルの送受信ができない。

- Webサイトを公開する時に使われ、作成したHTMLなどのファイルをサーバーにアップロードするときと更新するとき使用。
- セキュリティ面での脆弱性。(通信経路が暗号化されず、投資や侵入の可能性がある)
- FTPに通信を暗号化する手段を加えることでセキュリティの向上がはかれる。

[FTPについて](https://digitalidentity.co.jp/blog/creative/ftp-for-beginners.html)

## API
Application Programming Interfaceの略。
主にアプリケーション同士がデータをやりとりする場合に使用する一定のルール、仕組みのことだが、
APIという言葉自体は抽象的なもので、多様な意味がある。

- 「このようにリクエストがきたらこのようにデータを返す」という仕様全体を表すもの。
- 「呼び出したら実行されるメソッド」そのものを表す意味。

### よく使われるAPIといえばWebAPI

WebAPIは、HTTP/HTTPS通信を使用して利用するAPIのこと。
**Webエンジニアであれば必須の知識！**
レストラン掲載サイトにあるGoogle Mapsなど、Webサービスに組み込まれているものがよくある例。
他にもGoogle YouTube Data API、 Microsoft Face API、 Facebook Graph APIなど他にもいっぱい！

- **オープンAPI (公開API)**
APIの公開範囲が外部に渡っていることをオープンAPI(公開API)という。
WebAPIは、オープンAPI。

- **内部API**
APIの公開範囲が、自社や個人が開発したアプリケーションの内部で取り扱ってるもの。

[APIについて](https://data.wingarc.com/what-is-api-16084)

## OODA 
ビジネスシーンでよく利用されるフレームワークの一つ。以下のようなループを早く回すことで、行動修正を素早く行うことができるだけでなく、相手との関係において主導権を握ることも可能になる。

　　　　　←　　←　　←　　←　　　
　　　↓　　　　　　　　　　　　 ↑
**Observe[観察]** ▶︎みる
　　　↓　　　　　　　　　　　　 ↑
**Orient[状況判断]**▶︎わかる
　　　↓　　　　　　　　　　　 　↑
**Decive[意思決定]**▶︎きめる　　　
　　　↓　　　　　　　　　　 　　↑
**Act[実行]**▶︎うごく
　　　↓　　　　　　　　　 　　　↑
　　　 　→　　→　　→ 戻って　→

[OODAについて](https://data.wingarc.com/what-is-ooda-11126)

## オンプレミス
サーバーやソフトウェアなどの情報システムを、使用者が管理している施設の構内に機器を設置して運用すること。対するのは「クラウド」。
「自社保有」や「自社運用」とも呼ばれる。オンプレミスは直訳で「構内」や「店内」と言う意味。

**メリット**
- カスタマイズの自由度が高い
- ハードウェアからソフトウェアまで、自社だけで確保・所有できる

**デメリット**
- 物理的なITリソースを確保しなければならないため、初期費用が高くなる + 調達に時間がかかる + 資産の管理が必要
- 新機能の導入やセキュリティ作業に関しても、自社で行う必要があるため、運用コストが高くなりがち

# か行

## カスタマー
顧客、得意先、取引先などの意味を持つ。
お客さまという店で見ると、クライアントがある。使い分けは、**クライアントは「依頼主」**。
それに対して、パッケージソフトなどを買ってくれた**「購入者」がカスタマー**。

## 仮想化
サーバーなどのハードウェアリソース(CPU,メモリ,ディスクなど)を抽象化し、物理的な制限にとらわれず、ソフトウェア的に統合・分割できるようにする技術。
「仮想化されたサーバー」は、偽物のサーバーでは無く、「本物の(物理的な)サーバでは無いが、ソフトウェアによって実質的に本物と同じように扱えるサーバ」というイメージ。
Virtualは「仮想」と訳されるのが一般的。でもそれ以外に「実質的に」「事実上の」という意味がある。

[仮想化について](https://pfs.nifcloud.com/navi/beginner/virtualization.htm)

## カンファレンス
直訳で「会議・協議」。
関係者が集まって、一定事項について情報交換や意見を出し合い、その中から審議を行い、最良の方向性を見出す会合、又は組織のことを指す。
(例：ITカンファレンス)

## クエリ
直訳すると「問い合わせ」。データベースに対する命令文。「これ入れといて」とか「このデータ出して」という命令文のこと。
SQLと混合しやすいが、厳密にいうとちょっと違う。でも一般的には意図して使われる事もある。
細かく話すと、**SQL**は**「言語」**。**クエリ**は**「命令文」**。

## 組込みシステム
PCのような汎用的システムとは異なり、特定の機能を実現することに特化したハードウェア/ソフトウェアを組込システムという。
具体的な例だと、冷蔵庫や洗濯機、デジタルカメラなどの家電や、エレベータや信号機などの産業用の機器も組み込みシステムの一種。
組み込み系開発では、1つのシステムを複製して多くの製品を作るため、緻密なシステム作りが大切になる。

## クライアント
ITにおけるクライアントは、大きく2つ。
1つは「サービスや機能を使う側のコンピュータ」のこと。
2つは「依頼主、中でもお客様さま」のこと。
対になるのはサーバ。
需要(利用するクライアント)に対して、供給(提供するサーバ)と言ったイメージ。

## クライアントサーバ
通信ネットワークを利用したコンピュータシステムの分類の1種。
クライアントサーバシステムの省略。
機能や情報を提供する「サーバ」と、利用者が操作する「クライアント」からの要求が、ネットワークで繋がった構成になっているシステムのこと。
[クライアントサーバについて](https://wa3.i-3-i.info/word12356.html)

## クラウド
ユーザーが大規模なインフラやソフトウェアを持たなくても、インターネット上でサービスを利用できる仕組みのことを「クラウド」という。
クラウドの語源は、技術者がクラウドを説明するときに「雲」のイラストや図解用いていたとか、ユーザーがソフトウェアなどを持たずにインターネット(雲)越しにサービスを利用しているイメージからなど諸説あり。

[クラウドとは](https://securesamba.com/media/8279/)

### クラウドサービス
クラウドの仕組みを用いて提供されるサービスのこと。
種類は大きく4つ。

- SaaS
- PaaS
- HaaS
- IaaS

**メリット**
- 初期費用が安い(サービスによっては無料ってことも)
- 導入に手間がかからず、障害対応も提供者側が行う
- サーバーの拡張が用意にできる

**デメリット**
- 自由度が下がり、オンプレミスと比較するとカスタマイズに制限がある
- オンライン環境のみでしかサービスが受けられない(インターネット上でサービスを提供する仕組みのため)
- サービスが停止されるリスクもある

### クラウド化
クラウド上にデータを保存して運用すること。

## KPI
Key Performance Indicatorの略。日本語では「重要業績評価指標」のこと。
企業目標の達成度も評価するためのもの。最終的な目標を達成できるかを数値で計測する。
KPIは「中間目標」。

## KGI
Key Goal Indicatorの略。日本語では「重要目標達成指標」などと呼ばれる。
企業におけるビジネスの最終目標を定期的に測定し、評価するための指標。
KPIは「最終目標」。

## コミット
ITの分野では、処理や変更などを「確定させる」「反映させる」と言った意味。
一連の「ここからここまでワンセット」とする処理が終わり、「終わったので、やり終わったよ」と宣言するのがコミット。

## コーポレートエンジニア(コーポレートIT)
ITを用いて会社の事業を成長させるためのエンジニアのこと。
仕事の特徴としては、会社のIT戦略への貢献も求められるため、配備される企業によっては運用よりも企画力が求められることも。
そのため必要スキルは「課題認識・解決能力」といったスキル。

[コーポレートエンジニアついて](https://itinfoshop.com/coporate-it/)

## コンパイラ言語
大まかなプログラミング言語のひとつ。(もうひとつはスクリプト言語)
プログラミング言語の中では比較的歴史があり、基礎的な言語とされている。
機械語に翻訳された言語を用いている**機械にやさしい言語**。
人間(特に初心者)は比較的難しい言語。
歴史はあるが需要は減っていない。OSなどのシステム開発やゲーム開発など、「処理速度やグラフィックが重要な映像分野」では大人気。
例)**Java,C#,C言語**

**メリット**

- プログラミングの処理速度が早い
- ミスを発見してく知らせてくれる

**デメリット**

- 修正が簡単にできない(一度全部動かしてからでないと修正できない)
- 思い立った時に開発ができない(開発に必要なツールの用意がいる)

[コンパイラ言語](https://www.geekly.co.jp/column/cat-technology/1902_041/)

# さ行

## サーバー
サーバーという言葉は大きく二つの意味がある。

- クライアントの要望に応じたデータを送るプログラム・ソフトウェア
- Webサービスなどを提供するパソコン本体

**サーバーの種類**

- レンタルサーバー
- VPS
- オンプレミス
- クラウド

## サーバーサイドエンジニア
サーバーで行うためのプログラム開発やデータ処理を担当する。
Webサイトを操作して送られてくるデータを保管場所に保存するために、処理したり呼び出したりする環境の作成。
また、メンテナンスやバージョンアップの際に対応する仕事をする。
具体的な仕事内容は、バックエンドでのデータ処理環境の構築と、新しいソフトウェアやバージョンアップに伴う環境の調整・構築などがメイン。

**バックエンドエンジニアとの違い**
しばし混同されがち。
異なる点は、
  **バックエンド** ： Web領域のバックエンドを担当する。
**サーバーサイド** ： その他のバックエンドを担当する。

## SaaS(サース or サーズ)
クラウドでアプリケーション（ソフトウェア）機能を提供するビジネスモデル、サービスの提供。
toB、toC向けなど多数あるが、身の回りにあるほとんどはtoBが多い。
例：
* Microsoft Office 365などのオフィスソフト
* GmailなどのWebメール
* Dropboxなどのオンラインストレージ
* サイボウズなどのグループウェア

## システムエンジニア(SE)
クライアントからのヒアリングやシステムの設計をすること。
顧客の要求から仕様を決定し、大まかな設計をするまでの情報システム開発における上流工程を担当する。
上流工程は「要求分析・要件定義」「基本設計」「詳細設計」「テスト」など。
※企業や開発チームによってSEの仕事は異なる。

[SEについて](https://www.internetacademy.jp/it/server.html)

## システム開発
一般的にはIT技術を活用して業務の効率化を図る仕組みの構築を指す。
プロジェクトマネージャー、SE、プログラマーなどのさまざまな職種の人が関わり、決められた納期に作り上げていく。

[システム開発とは](https://kikakushosakusei.com/product/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%8B%E7%99%BA%E3%81%A8%E3%81%AF%EF%BC%9F%E5%B7%A5%E7%A8%8B%E3%80%81%E4%BB%95%E4%BA%8B%E5%86%85%E5%AE%B9%E3%80%81%E5%8F%8E%E5%85%A5%E3%80%81%E8%81%B7%E7%A8%AE/)

## 自社開発
自社で展開するための商品サービスを独自に開発する。
市場のニーズを掴んでアイディアを出し、企画、システム開発を経てリリースする。

**メリット**(一意見)

- 客先に常駐することがない
- 自由にアイディアを出し合いサービスの企画から携わることができる
- ユーザーの反応をシステムに反映し改良できる

**デメリット**(一意見)

- 高いスキルが必要となる(即戦力のあるエンジニアが求められやすい傾向)
- 知識が偏る可能性がある
- 絶対的なゴールや正解が示されないため、常に自分たちで決める必要がある

## 受託開発
クライアントから仕事を受注し、システムやソフトウェアを開発すること。
オーダーメイドのようなイメージ。

**メリット**(一意見)

- 案件の量は比較的安定している
- お客様の希望・要件・予算にあったプロダクト・システムを提案することの面白さ・やり甲斐がある
- 良いものを納めれば、お客様の重要なビジネスパートナーになれる

**デメリット**(一意見)

- 下請け的な位置付けで、理不尽な要件や短納期、売上額に見合わない開発案件を押し付けられることも…
- 受託開発が会社の売り上げの中心になると、会社として本当にやりたいことがやりづらくなる
- 多重不可の問題がある

[受託開発について](https://engineer-club.jp/entrusted-development)

## スクリプト言語
大まかなプログラミング言語のひとつ。(もうひとつはコンパイラ言語)
習得・コーディングが比較的簡単と言われるものの、複雑な処理を行える言語。
また、可読性が比較的高い。
環境構築のわりかし簡単なものが多く、また事前コンパイラを必要としないインタプリタ言語が中心のスクリプト言語は、開発時に気軽に実行して動作の確認ができる。
その反面、1行ずつコンパイルする場合が多いため、実行が遅い。
例)**Pyhton,Ruby,JavaScript,PHP**

## スタンドアロン型
直訳すると「孤立」。つまり「ネットワークから切り離された状態」。
インターネットに接続されていないため、他のシステムや端末と通信できない。
USBやSDカードに保存したコンテンツを、機器に差し込み配信するやり方が一般的。

ネットワークから切断されているため、ネットワーク経由のウイルスが入る危険性はほとんどない。

## スペック
パソコンの「中身の構成」や「性能」のこと。

## ソース
大きく3つの意味がある。

- ソースコードの省略表現(プログラムの元ネタ)
- 情報の発信源のこと(元となる資料など)

## ソフトウェア
コンピュータに命令を出すための情報であるプログラムのこと。目で見えない。
広い意味では、プログラムが処理するデータも含まれる。
アプリケーション、ミドルウェア、フェームウェア、OSなど。

## ソリューション
企業がビジネスやサービスについて抱えている問題や、不便を解消すること。
または、そのために提供される情報システムのことを指す。
一般的な意味では、「回答」や「解決すること」の意味を持つ英語。