新人SE必見!IT用語の違いを徹底解説
はじめに
IT用語には、似ているようで意味がちょっと違う言葉、同じようでも意味が全く違う言葉に溢れています。
IT初学者が混同し易い言葉を集めて、自分なりの解釈で噛み砕き解説してみます。
クラウド関連用語
クラウドファースト と クラウドネイティブ の違い
クラウドファーストは、クラウド優先でシステムを構築すること。
クラウドネイティブは、クラウドで稼働することを前提にシステムを構築すること。
マイクロサービスに分割されているコンテナ上のアプリケーション同士がAPIを通じて互いに緩く連携する。。。これがクラウドネイティブ最大の特徴とされています。例えばAWS Fargate
のような構成。かつてのコンテナは開発環境に作るものというイメージでしたが、昨今では本番で運用することも珍しくありません。
マルチクラウド と ハイブリッドクラウド の違い
マルチクラウドは、異なるベンダーのクラウドサービスを併用すること。例えばAWSとAzureを併用するようなこと。ベンダーロックイン(ベンダー依存になり柔軟性が失われること)を回避できる反面、管理が複雑になるというデメリットも。
ハイブリッドクラウドは、異なるクラウドタイプ(パブリッククラウド、プライベートクラウド、オンプレミス)を相互接続すること。
VPC と VPS の違い
VPCは、Virtual Private Cloud
の略で、パブリッククラウドに構築した仮想的なプライベートクラウドのこと。
VPSとの違いは、複数台の仮想サーバを定義したり、外部アクセス用と内部アクセス用にセグメントを分けたり、負荷に応じてリソースを増減したり(スケールアップ/スケールダウン)、VPNゲートウェイを入れたりと色々できます。従量課金制が多いです。
AzureだけはVPCをVNetと呼んでいます。
VPSは、Virtual Private Server
の略で、ホスティングサービスのひとつ。固定リソースの仮想専用サーバを廉価な月額固定料金で使えます。
仮想サーバと対比される用語として、専用サーバ(1台の物理サーバ=ベアメタルをまるごとレンタル)と共用サーバ(1台の物理サーバを分割し、複数のユーザが共同で使う)があります。
セキュリティ関連用語
認証 と 認可 の違い
認証は、相手が誰かを確認すること。
認可は、権限を与えること。
殆どの場合、認証によって認可が行われるため、この2つはセットで考えることが多いです。
これは蛇足ですが、認証保育園と認可保育園の違いは、都の基準をクリアしたか、国の基準をクリアしたかです。
二要素認証 と 二段階認証 の違い
二要素認証は、
- 知識要素(本人だけが知っていること。例:パスワード)
- 所持要素(本人だけが所有しているもの。例:ICカード)
- 生体要素(本人だけが持つ特徴。例:指紋)
のうち、2つの要素を組み合わせて認証すること。
二段階認証は、2段階に分けて認証すること。例えば、パスワード+秘密の質問みたいな。この場合は知識要素のみで構成されているので二要素認証とは言えません。
日本ではマスメディアによって二段階認証という用語が普及しましたが、IT業界では二要素認証(2FA)や多要素認証(MFA)と使い分けています。
RBAC と ABAC の違い
どちらも、アクセス制御(認証と認可によって、実行できる機能やアクセスできるサービスを限定すること)の方式を示す名前です。
RBACは、Role Based Access Control
の略で、ユーザに付与されたロール(役割)に基づいてアクセス制御を行います。ユーザに対して直接権限を与えるのではなく、ロールを通して権限を与える方式。
ABACは、Attribute Based Access Control
の略で、ユーザが持つ属性に基づいてアクセス制御を行います。RBACよりも新しい方式。属性とは例えば、アクセス元IPアドレスや端末の種類といった情報。これをリアルタイムに評価することでアクセス権限を動的に制御できるため、巷で話題のゼロトラストとも相性が良いです。
ログイン と ログオン と サインイン の違い
いずれも、コンピュータやオンラインサービスにアクセスする際にユーザの身元を確認する行為(認証)を指します。システムによって呼び名が変わるだけです。
ログインは、UNIX系やMacの他、オンラインサービスでも広く使われています。
ログオンは、Windows7以前で使われていました。すでにあったUNIX系との差別化のため、マイクロソフトが戦略的に使い始めたという噂も。
サインインは、Windows8以降で使われ始めました。Microsoftアカウントに統合されたので名称も変えたのでしょうか。IBMなどの一部のオフコンでも使われていました。今後はサインインが主流になるかもしれません。
どれを使っても良いですが、反対語は正しく使い分けたいですね。
ログインならログアウト、ログオンならログオフ、サインインならサインアウトというように。
なお、IBMはサインオンを推していたようで、その名残がシングルサインオンという名前で残っているっぽい。
SSL と TLS の違い
どちらも、盗聴・改ざん・なりすましを防止する暗号化プロトコルです。
歴史的背景からTLSはSSLの次世代規格ということになっていますが、TLSが登場した頃にはSSLという名称が広く普及していたため、名称をTLSに置き替えるまでに至らず、SSLといえばTLSも含むのが一般的です。
プロトコルとしてのSSL(SSL 2.0、SSL 3.0)には脆弱性があるため、現在は殆ど使われていません。
正確に伝えたいならSSL/TLSと併記するのが望ましいでしょう。
サーバ証明書 と クライアント証明書 の違い
どちらも、X.509
(えっくす ぽいんと ごーまるきゅーと読む)規格に代表されるデジタル証明書(公開鍵証明書)であり、通信相手が本物かどうかの確認(認証)に使います。
サーバ証明書は、クライアント(端末)に対して、サーバが本物であることを証明するもので、サーバ側が提示します。ドメイン名に対して発行されることが多いです。一般的にはパブリック認証局(CA)が発行します。
クライアント証明書は、サーバに対して、クライアント(端末)が本物であることを証明するもので、クライアント側が提示します。一般的にはプライベート認証局(CA)が発行します。身近な使用例にネットバンキング(三菱UFJのBizSTATION等)があります。
なお、認証するためには、通信相手の証明書のルート証明書(と中間証明書)を事前にインストールしていなければなりません。クライアント証明書なら、サーバ側に「クライアント証明書のルート証明書」が必要になります。
ソフトウェアに署名をするコードサイニング証明書というのもあります。これはソフトウェアの配布元を認証するときに使います。
暗号化 と ハッシュ化 の違い
どちらも、データの内容を特定のルール(アルゴリズム)で変換し、第三者に判読できなくします。元のデータを復元(復号)できるかが決定的な違いです。
暗号化は、RSAやAESなどの暗号化アルゴリズムと鍵を使い、復元可能な値に変換すること。
ハッシュ化は、MD5やSHA1などのハッシュアルゴリズムを使い、復元できない値に変換(不可逆変換)すること。双方の情報が同じか確認できれば良いなど、復号が不要な場面で使われます。また、ハッシュ値が同じならデータが改ざんされていない証明になります。
インフラ関連用語
フォールトトレランス と アベイラビリティ の違い
どちらもシステムの信頼性に関する用語で、障害に強いシステムを目指そうとするものですが、焦点が異なります。
フォールトトレランスは、耐障害性と訳される通り、障害が発生しても全体が機能停止することなく、正常に稼働させ続ける特性のこと。フォールトトレラントはその形容詞で、フォールトトレラントサーバ(FTサーバ)といえば耐障害性のあるサーバのこと。フォールトトレランスを高める方法に冗長化があります。
東証の株式売買システム arrowhead のように「止まることが許されないシステム」は、フォールトトレラント設計になっています。
アベイラビリティは、可用性とか耐久性といった意味で、「障害が発生しにくい」「障害があっても復旧し易い」を測る尺度。ハイアベイラビリティとはアベイラビリティが高いシステムのことで、通常HAと略されます。
フェイルオーバ と フェイルバック と フォールバック の違い
前者2つは、冗長化されたサーバ構成(HAクラスタ)の運用で頻出します。
フェイルオーバは、稼働系(現用系とかアクティブサーバともいいます)から待機系(予備系とかスタンバイサーバともいいます)に処理を引き継ぐこと。系切り替えともいいます。ただし、人間が手動で切り替える場合はスイッチオーバといいます。
フェイルバックは、その逆。つまり、障害の要因が取り除かれ、本来の稼動系と待機系の構成に戻すこと。切り戻しともいいます。
フォールバックは、異常が生じた際に機能や性能を制限してでも動かすこと。縮退運転ともいいます。また、そうした考え方をフェイルソフトといいます。
フォールとかフェイルで始まるIT用語は他にもあり、情報処理の資格試験には嫌というほど出てきたと記憶しますが、現場では殆ど使わない用語なので解説しません。
なお、クラウドの世界では、2つのデータセンター(AWSでいうAZ)に跨いで稼働系と待機系を構成し、冗長化を担保するのが定石になっています。クラウドといっても万能ではなく、データセンターごと落ちることは十分あり得るからです。後述するSLAもそれが前提になっています。
ポートトランキング と リンクアグリゲーション と チーミング の違い
いずれも、複数の物理回線(ポート、ケーブル)を仮想的なひとつの論理回線として扱い、通信速度およびフォールトトレランスを向上させる技術を言います。何に注目してるかで呼び方が変わります。
ポートトランキングは、ポート(接続口)に注目した用語。単にトランキングと言えば複数の回線を束ねることの総称。昔からある用語。
リンクアグリゲーション(LAG) は、リンク(接続線)に注目した用語。ベンダー各社のポートトランキング技術をIEEE802.3adで標準化したものといえます。ポートトランキングだと、VLAN規格(IEEE802.1Q)のトランクポートと紛らわしいことも手伝い、最近はこの用語が主流。Ciscoのイーサチャネルと同じです。
チーミングは、NICチーミングとも言い、スイッチ側ではなくサーバ側に注目した用語。実際その設定はスイッチではなくサーバで行います。待機系のNICがあるかどうかでリンクアグリゲーション方式とフォールトトレランス方式に分かれます。Linux系ではボンディングとも言い、複数のチャネルを束ねて通信することをチャネルボンディングと言いますが、無線LANでも IEEE 802.11n(Wi-Fi 4)から利用できるようになりました。
無線LAN と Wi-Fi の違い
IEEE 802.11シリーズが無線LANのデファクトとなった今日では、同じものと扱って差し支えありません。
Wi-Fiは、無線LANのブランドみたいなもので商標です。
昔の無線LANは異なるメーカー間の動作が保証されていなかったので、それを解消するために Wi-Fi Alliance が設立されました。Wi-Fi CERTIFIED ロゴのある機器は Wi-Fi Alliance によって他ベンダーとの互換性が保証されています。
ルータ と L3スイッチ の違い
どちらもルーティング機能を備え、じつは機能的には殆ど同じです。
実際の現場では、すべて、たんにルータと言ったりします。
ルータは、主にLANとWANの境に設置され、イーサネット以外の回線・プロトコルにも対応していることが多いです。NATやVPN、IDSを備えるのが一般的です。
L3スイッチは、LAN内に設置され、部署やフロアといった単位でLANを論理的に分割するVLAN機能を備えます。分割したVLAN同士を繋ぐために使われるため、イーサネットのポートの数がとても多いです。
なお、L2スイッチとはスイッチングハブのことです。リピーターハブ(通称バカハブ)とは異なります。
ホットスペア と ホットスワップ の違い
どちらも機器の冗長化に関連する用語で、RAIDで特に頻出します。
ホットスペアは、ホットスタンバイとも言い、稼働系から、同期する待機系へ瞬時に切り替える方式のこと。同期していない場合はウォームスタンバイ、待機系を停止している場合はコールドスタンバイと言います。
RAIDでは、ディスクが故障したときに、通電状態の予備ディスク(ホットスペアディスク)を使って、自動でリビルドしてくれる仕組みを言います。例えばRAID1を組んでいる場合、ミラーリングしているディスクが故障したときにスペアディスクを使ってミラーリング状態を自動的に回復してくれます。
ホットスワップは、電源を入れたままパーツ交換すること、またはその仕組み。ホットスワップに対応していれば、機器を稼働させたまま部品を交換できる上、すぐに認識されて使用できます。エンタープライズ向けサーバではホットスワップ対応が当たり前になっています。
RAIDでは、稼働中にディスクを交換すること、またはその仕組み。ホットプラグとも言います。
レプリケーション と ミラーリング の違い
どちらも、データを複製してフォールトトレランスを高める手法。主にデータベースの文脈で使われます。
レプリケーションは、違うサーバにすべてのデータを複製します。停止したときのリスクが大きい大規模サービス向きです。
ミラーリングは、同じサーバの違うディスクにデータを複製します。環境を2つ用意する必要がないので低コスト。データベースの文脈で出てきたときは、すべてのデータを複製するとは限らないので完全なバックアップとはならない場合があります。ストレージ(NASとか)の文脈で出てきたときはRAID1のこと。
レプリケーションとミラーリングを併用することもあります。
スーパーバイザ と ハイパーバイザ の違い
どちらも、特殊な制御プログラムの分類になります。
スーパーバイザは、コンピュータの資源(リソース)を管理する中核プログラム。オペレーティングシステムと同義と思って構いません。オペレーティングシステムのカーネルが持つ特権機能を呼び出すことをスーパーバイザコールとかシステムコールと呼びます。
一般用語の意味(監督者、SV)として使う場合はスーパーバイザーと末尾に長音記号を入れて使い分けます。
スーパーバイザの対義語は、ユーザーランドです。
ハイパーバイザは、物理的なマシン(ベアメタル)の中に、仮想マシンを作り、実行するためのプログラム。一般にハイパーはスーパーの上という意味で用いられている通り、スーパーバイザに対してその上位から管理する役割、というのが語源。
ハードウェア▶ホストOS▶ハイパーバイザ▶ゲストOS
のようにホストOSを必要とするホスト型とハードウェア▶ハイパーバイザ▶ゲストOS
のようにホストOSを必要としないベアメタル型(ハイパーバイザ型)があります。Windows10 Pro に標準で入っている仮想化ソフト Hyper-V はホスト型と誤解されがちですがベアメタル型で正しいです。じつは Hyper-V 上の仮想マシンで Windows10 Pro が動いているからです。
仮想マシン と コンテナ の違い
どちらも仮想化の技術ですが、ゲストOSを必要とするのが仮想マシン、そうでないのがコンテナです。
コンテナの実体は、コンテナランタイム(コンテナエンジンともいう)によって作成された、ホストOSのリソースを隔離したプロセスです。(UNIXのchroot
と似てますが、chroot
で隔離できるのはファイルシステムだけ)
アプリケーションの起動に必要なライブラリや設定ファイルを環境ごとに用意し、アプリケーション実行時にプロセスの属性を変更することで、独立した実行環境を作れるのがコンテナです。アプリケーション側からは、それぞれのコンテナ(実体はプロセス)は別のコンピュータで稼働しているように見えますが、ホストOSのカーネルは共有するので、仮想マシンと比べると軽量です。
今日デファクトスタンダードとなったコンテナランタイムに Docker があります。
1台のサーバ上に複数のコンテナを立ち上げるのが当たり前になると、その運用管理に手間がかかるようになりました。この問題を解決するために生まれた技術がコンテナオーケストレーションで、その代表的なツールに Kubernetes(クーバネティスと読み、書くときは k8s と略されることが多い)があります。
ECS と EKS の違い
どちらもAWSで利用できるコンテナサービスで、コンテナを動かすサーバにEC2かFargateを指定できますが、オーケストレーションツールに違いがあります。
ECS(Elastic Container Service)は、AWS独自のオーケストレーションツールを使います。
EKS(Elastic Kubernetes Service)は、Kubernetesのマネージドサービスです。
どちらが良いとか悪いとかはありませんが、ECSからEKSに移行する案件はありますが、その逆は聞きません。
開発関連用語
ライブラリ と フレームワーク の違い
ライブラリは、よく使う汎用性の高い機能をまとめたものです。プログラマが決めたタイミングで呼び出します。
フレームワークは、全体の枠組みを提供するものです。プログラマが用意した機能をフレームワークに呼び出してもらいます。
呼ぶのか、呼ばれるのか、つまり主導権が違うわけです。
コンパイル と ビルド と デプロイ の違い
コンパイルは、ソースコードをオブジェクトコード(機械語バイナリ)に変換することです。
ビルドは、オブジェクトコード同士をリンクして実行ファイルにまとめることです。
デプロイは、実行ファイルを実行環境(ステージング環境やプロダクション環境)に配備し、利用できる状態にすることです。ローリングデプロイとかカナリアデプロイとかの種類があります。
なお、インフラ周りの用語にはデプロイと似た意味としてプロビジョニングがありますが、こちらは「リソースを準備して利用できる状態にする」ことです。
マイクロサービス と モノリス の違い
マイクロサービス(マイクロサービスアーキテクチャ) は、小さなサービスを組み合わせて大きな処理を行うソフトウェアの作り方です。各サービスは別々のマシン(コンテナ)に配置できるため、独立してデプロイ、スケールできるのがメリット。クラウド開発の主流です。
この考え方自体は以前から、SOA(サービス指向アーキテクチャ)や疎結合(個々の機能・サービスを独立させてシステム変更の影響を最小化する技術)として知られています。
モノリス(モノリシックアーキテクチャ) は、その逆で、大きなサービスですべての処理を行うソフトウェアの作り方です。
ノーコード と ローコード の違い
ノーコード(no code
)は、コードを一切書かずにアプリケーションを作ること。なので、プログラミングの知識は必要ありません。Microsoft Power Platform はノーコードツールといって良いと思います。
ローコード(low code
)は、コードを少しだけ書く必要がありますが、ノーコードに比べるとカスタマイズできる範囲が広いです。ローコードツールには Salesforce や Kintone などがあります。
DevOps と SRE の違い
DevOpsは、Development and Operations
の略で、開発チームと運用チームが協力することで開発を迅速に進めようという考え方です。アジャイル開発(スクラム開発)とか、GitHub ActionsやCircle CIなどのCI/CDパイプライン、Slack、コンテナ、IaCなどはDevOpsを実現する強力なツールと言って良いと思います。
SREは、Site Reliability Engineering
の略で、開発者が設計した運用チームにおいて、システムの信頼性向上を目指すポジションを指し、運用の自動化(オーケストレーション)など全体効率化を主な活動とします。よって、SREエンジニアにはインフラから開発、セキュリティまで幅広いスキルが求められます。
Git と GitHub の違い
Gitは、バージョン管理ツールの名前です。
GitHubは、Gitを使ってコラボレーション機能を充実させたWebサービスの名前です。Gitには無い、プルリクエスト(Pull Request
)という、ソースコードの変更点について他メンバにレビュー依頼できる機能があります。
SPA と PWA の違い
どちらも、モダンなWebアプリケーションの開発手法(アーキテクチャ)の名前。
SPAは、Single Page Application
の略で、文字通り単一ページで構成され、ページ遷移を行わずにコンテンツを切り替えることでネイティブアプリのように振る舞います。Client Side Rendering
とほぼ同義。JavaScriptでHTMLの一部を書き換えて実現しています。通常、Vue.jsやReactなどのフロントエンドフレームワークで作ります(厳密にはReactはフレームワークではなくライブラリですが)。なお、レンダリング(HTMLの更新)をサーバ側で行うことをSSR(Server Side Rendering
)と呼びますが、それに対し、ビルド時に静的なHTMLファイルを生成しておくことをSSG(Static Site Generator
)と呼びます。これはNuxt.jsやNext.jsが対応しています。3文字略語だと分かりづらいですが、元の英単語を想像してもらえると容易に区別が付くと思います。
PWAは、Progressive Web Apps
の略で、SPAの操作性に加えて、オフラインでも使用できたり、プッシュ通知を受け取って表示できたり、アプリ一覧に表示させて管理したりと、まるでスマホのアプリのように振る舞います。これらは、Service Worker というプロキシ的な役割をする特殊なJavaScriptを、ブラウザの裏で独立実行することで実現しています。
JavaScript と TypeScript の違い
TypeScriptは、Microsoftによって開発されたaltJSのひとつ。altJSで書かれたプログラムはコンパイルするとJavaScriptコードが生成されます。(このように別のプログラミング言語に変換することをトランスパイルとも言います)
JavaScriptは動的型付け(実行時に変数のデータ型が自動で決まる)ですが、TypeScriptは静的型付け(変数のデータ型を予め決めておける)なので、エラーを回避し易くチーム開発向きです。altJSとしては後発なものの、2021年現在とても人気があります。
CSS と SCSS の違い
いずれもWebサイトの見た目を定義します。
SCSS(Sass) はCSSを拡張したメタ言語で、SCSSで書かれたコードはCSSにコンパイルして使います。
記述形式として、CSSと上位互換性のあるSCSS形式と、Rubyのようにカッコやセミコロン抜きで書けるSASS形式があります。
SASSよりSCSSの方が後発ですが、SCSSが現在の主流になっています。
モックアップ と プロトタイプ の違い
どちらも、開発物をクライアントに確認いただく際に使われます。
モックアップは、本物と同じような模型、完成形に近い画面デザインを指します。機能は実装されていません。
プロトタイプは、試作品。実際に動かせます。
Webアプリケーション開発やホームページ制作では、ワイヤーフレームという画面設計書のようなものを用意する場合もあります。
マイグレーション と コンバージョン と リプレイス の違い
いずれも、システムの再構築に関する用語です。
マイグレーションは、移行とか乗換の意。新しいプラットフォームや他ベンダーの製品にシステムを移行すること。システムの老朽化や陳腐化のタイミングで決まることが多いです。たんにソフトウェアのバージョンアップの意味でも使われます。
コンバージョンは、変換の意。データ形式の変換、ツールで別のプログラミング言語に変換、異なる設計に変換、というような意味で使われる他、文脈によってはマイグレーションの手段となり、その場合の対義語はリビルド(作り直し)と言います。
Web広告業界では、サイトの訪問者が、サイト運営者の目標としている行動(最終的な成果)を起こした状態を指します。成果とは、成約や会員登録、資料請求など様々。成果に結びついた割合をコンバージョンレートといい、Googleアナリティクスでも計測できます。
リプレイスは、置換の意。スペック不足や老朽化、破損などで、既存の機器やシステムを新品または同等の機能を持った別のものに置き換えること。プラットフォーム(基盤)が変わるわけではありません。税制上定められている減価償却期間(法定耐用年数)がパソコンなら4年、サーバなら5年なので、概ねこの周期で機器リプレイスのイベントが発生します。
プログラミングやIDEの文脈で出てきたときは、文字列の置換を表します。(例:replace関数)
プロセス と スレッド の違い
プロセスは、オペレーティングシステムからみた実行単位。
プロセスごとに独立したメモリ空間(仮想アドレス)を持ちます。他のプロセスのメモリにはアクセスできません。異なるプロセス間で同じメモリを共有するには、共有メモリ領域を作成する必要があります。
スレッドは、プロセスからみた実行単位。
プロセスは1つ以上のスレッドを持ちます。シングルスレッドのプロセスなら1つのスレッド、マルチスレッドのプロセスなら複数のスレッドを持ちます。マルチスレッドにするとCPUの複数コアに処理を割り当てられるので高速化が期待できます。
スレッドは同じプロセスから起動された他のスレッドのメモリにアクセスできます。
バニラ と デフォルト の違い
どちらも、初期状態のソフトウェア(場合によってはハードウェア含む)というような意味があります。
バニラは、改変・カスタマイズされていないソフトウェアといった意味で使われます。例えば、Linux作者のリーナス・トーバルズによりリリースされる公式のLinuxカーネルはバニラカーネルと呼ばれますが、その標準味をベースにトッピングを施したものが、世に広まっている様々なLinuxディストリビューション(ディストロ)です。
デフォルトは、標準設定とか初期設定、初期値といった意味。Windowsでは「既定の設定」と呼ばれます。
UTF-8 と Unicode の違い
UTF-8は、文字符号化方式(エンコーディング)のひとつ。
Unicodeは、符号化文字集合(キャラクタセット)のひとつ。
符号化文字集合も文字符号化方式も文字コードを構成する要素には違いないですが、同列に扱われるものではありません。
符号化文字集合は、文字に番号(コードポイント)を割り振った対応表。コンピュータはバイト列しか扱えないので符号化してあげる必要がありますが、そのルールが文字符号化方式です。
世界中の文字を統一して扱えるようにしたのがUnicodeという文字集合で、その符号化のルールにUTF-8やUTF-16があるということです。
※歴史的経緯からUTF-16の意味でUnicodeと表示する古いソフトもあるので注意(一概に誤りとは言えません)。
機種依存文字 と 環境依存文字 の違い
意味は同じ。処理系によって、正しく表示されなかったり、文字化けする文字のこと。
昨今は環境依存文字に統一されつつあります。
UTF-8が普及して文字化けは減ってきたものの、メインフレーム(昔からある汎用大型コンピュータ)から姓名・住所データをもらうと、変換できずに下駄記号(〓)が混じっていることがあります。
オーバーライド と オーバーロード の違い
どちらも、Javaなどのオブジェクト指向言語で頻出します。
オーバーライドは、スーパークラス(親クラス)で定義されたメソッドをサブクラス(子クラス)で再定義すること。サブクラスに特化した機能を追加できます。
オーバーロードは、同じクラスの同じメソッド名で、引数の型や数が違うメソッドを複数定義すること。複数の動作を状況に合わせて実行できるので、メソッドを利用する側の負担が減ります。
IoT関連用語
IMSI と IMEI の違い
IoTやモバイル端末の分野で頻出します。どちらも世界でユニークに付与されている識別番号です。
IMSIとは、International Mobile Subscriber Identity の略で、SIMカードに付与されています。加入者識別番号とも言います。SIMロックのかかった端末では、端末がSIMカードを識別するのに利用されます。
IMEIとは、International Mobile Equipment Identity の略で、通信端末に付与されています。端末識別番号とも言います。
なお、SIMカードに付与されているIDには他にも ICCID(Integrated Circuit Card ID の略)という最大19桁のシリアル番号があり、その一部がSIMカードに印刷されていることも多いです。一般利用者や携帯電話ネットワークが ICCID を使うことは殆どありません。
データ通信専用SIMカード
ワンボードマイコン と シングルボードコンピュータ の違い
どちらも小型コンピュータであり、組み込み系・制御系の分野で頻出します。
ワンボードマイコンは、CPUやレジスタ(メモリ)、フラッシュROM、最低限の入出力装置などをプリント基板に付けた簡易コンピュータ。汎用的なOSは先ず動かないと言って良いです。
シングルボードコンピュータは、必要な機能がSoCという集積回路に収められ、主にLinuxが動き、キーボードやディスプレイを接続できることが多いです。Raspberry Pi(通称ラズパイ)や Obniz が有名。
ワンボードマイコンの性能が向上し、シングルボードコンピュータの低価格化が進んだことで、両者の差は無くなりつつあります。
ASIC と FPGA の違い
どちらもカスタム可能な集積回路(IC)ですが、汎用ICとは異なる設計です。
通信機能を小型化し発熱もバッテリ消費も抑えるとなると汎用ICでは力不足な上に、ビッグデータ処理やディープラーニング向け並列計算との相性の良さから、IoTデバイスで広く使われています。
FPGAで内部ロジックを試作してからASICで量産、というパターンが多いです。
ASICは、Application Specific Integrated Circuit
の略で、文字通り、特定用途向けに設計・製造されるオーダーメイドな専用IC。初期投資に多くの費用と期間が必要ですが、無駄なく回路が作られるため量産する場合にはコストが下がり、FPGAに比べて高速に動作します。
暗号通貨(仮想通貨)のマイニングに参加する企業は、マイニングに特化した高速計算・低消費電力のASICを開発し、少しでも速くマイニングして報酬を得ようとします。
FPGAは、Field Programmable Gate Array
の略で、そのまま訳すと「現場で書き換え可能な論理回路の多数配列」となります。論理回路をハードウェア記述言語(HDL)で設計し、書き換え可能メモリであるフラッシュROMに記憶させる方式。回路を自由に書き換えながら動作させることができます。
Bluetooth(BLE) と ZigBee の違い
どちらも、低速・近距離・低消費電力の無線通信規格(2.4GHz帯)であり、IoTなどの組込み機器で多用されます。
Bluetoothは、1999年に最初の規格となるBluetooth1.0が発表された無線通信技術。以降、規格の改訂が度々行われ、Bluetooth5.3が記事執筆時点の最新バージョンです。身近なデジタル機器の殆どに搭載されているので知らない人は居ないと思います。BLE(Bluetooth Low Energy の略)は、Bluetooth4.0から追加された低消費電力に特化した規格で、今後増加していくIoT機器の需要に応えるために開発されました。それまでのBluetooth規格(Bluetooth Classic と呼ぶ)との互換性はありません。
ZigBeeは、転送可能距離も通信速度もBluetoothに比べると劣る代わりに、安価で消費電力が少ないという特徴を持つ無線通信技術で、IEEE 802.15.4で規格化されています。ミツバチ(Bee)がジグザグに飛び回り、蜜の在り処を仲間と情報交換する行動にちなんで命名されました。じつは、通信時の消費電力はBluetoothと大差ありませんが、スリープ時の待機電力が小さく、スリープ解除からデータ送信までの時間(復帰時間)が短いため、IoT機器のように少量のセンサーデータを一定間隔ごとに送信する利用局面で省電力効果を発揮します。
その他IT業界用語
プロジェクトマネージャ と プロダクトマネージャ の違い
どちらの役割も略すとPMになるため、プロダクトマネージャはPdMと表記することが多いです。
プロジェクトマネージャは、品質とコスト、リリーススケジュールなど、PMBOKに定義されている知識エリアに責任を持ちます。いつまでに、どうやって作るのか?という How の視点が大切。
プロダクトマネージャは、ユーザからみた課題解決、事業成長といったビジネス面に責任を持ちます。なぜ作るのか?という Why の視点が大切。
筆者は、「自社開発ができるベンチャー」と「自社開発ができないベンチャー」のいずれにもお手伝いで参画してますが、後者の場合、システム発注側のリーダーがプロダクトマネージャになり、システム受注側のリーダーがプロジェクトマネージャになるケースが多い感じです。
なお、昨今はプロダクトマーケティングマネージャ(PMM)というポジションも見聞きするようになりました。こちらは売ることに責任を持ちます。
PDCA と OODA の違い
どちらもマネジメントモデルのメソッド(プロジェクトを回すときの考え方)です。
PDCAは、Plan
(計画)、Do
(実施)、Check
(評価)、Action
(改善)を合わせた言葉で、そのままピーディーシーエーと読み、一連の流れをPDCAサイクルと呼びます。品質改善に重きを置いています。
OODAは、Observe
(観察)、Orient
(方向付け)、Decide
(決定)、Action
(行動)を合わせた言葉で、ウーダと読み、一連の流れをOODAループと呼びます。意思決定に重きを置いています。
今日ではとにかくスピードが重視されるため、情勢の変化に柔軟に対応するマネジメントが求められています。PDCAは計画から始めるので準備が必要ですが、OODAは現場が起点となりOODAループを高速で繰り返すことで臨機応変な対応が可能になっています。
PoC と PoV の違い
どちらも、企業がシステム投資の意思決定をする上で欠かすことのできないプロセスです。
PoC(Proof of Concept
)は、概念実証と訳され、実現可能性に着目して実地で試行すること。「作ってみたら動かなかった」を回避するのが目的。IoTなどの製造分野では、取得可能なデータを使って先ず現地でPoCを実施することが多いです。
PoV(Proof of Value
)は、価値実証と訳され、サービスが実現する価値に着目し、コストに見合った商業的価値があるか?導入効果があるか?を検証すること。「作ってみたら誰も使わなかった」を回避するのが目的。
レジストリ と レジストラ の違い
どちらも、ドメインを運営する組織です。
レジストリは、ドメイン情報のデータベースを管理している機関。トップレベルドメイン(.com
や.net
、.jp
など)の数だけ存在します。.jp
なら株式会社日本レジストリサービス(JPRS)が管理します。
レジストラは、レジストリから認定を受けたドメイン登録代行・販売業者。お名前.comを運用するGMOドメインレジストリ株式会社もそのひとつ。
他に、レジストラを通してドメインの登録・販売を行うリセラーがあり、さくらインターネットはリセラーでもあります。
なお、すべての上位にICANNという、インターネットで利用される全てのドメインの管理を行う国際機関が位置します。
ハッシュ記号 と シャープ記号 の違い
ハッシュ記号(#)は、パソコンのキーボードや電話機のボタンにある記号。ナンバー記号とか、日本だと井桁とも呼ばれます。横線が水平で縦線が右に傾いています。
シャープ記号(♯)は、楽譜上で半音あげることを意味する記号。縦線が垂直で横線が右上がりです。
プログラミング言語 C# は「C Sharp」と発音し、電話の自動音声案内では「シャープを押してください」と言われますが、じつはハッシュです。
ディレクトリ と フォルダ と ホルダ の違い
コンピュータの分野では、いずれも「ファイルをグループ分けして名前をつけて保管できる格納場所」を指し、同じものです。
状況に応じて呼び方を変えれば良いです。
ディレクトリは、Unix系やMS-DOSなどのCUIの他に、プログラミングの文脈で使われます。Windows3.1のファイルマネージャでもディレクトリと呼ばれていました。
フォルダは、WindowsエクスプローラやmacOSのFinderなど、GUIが主流になってから使われ始めた言葉です。
ホルダは、フォルダと同じ。パソコンに詳しくないご年配の方が良く使います。ホルダ(holder)には、容器とか入れ物という意味もあるので、あながち間違いではありません。
IEEE と IETF の違い
どちらも、コンピュータやネットワークに関連する規格の標準化を行う団体です。
IEEEは、あいとりぷるいー、と読み、電気通信関連の仕様を標準化している世界最大の団体。IEEE 1394(FireWire/DV端子)とか、IEEE 802(LAN)とか、IEEE 802.3(イーサネット)とか、IEEE 802.11(無線LAN)とか、様々な規格を策定しています。
IETFは、インターネット技術の標準化を推進する団体。議論はすべて公開されていて、誰でも参加できます。IETFで決まった規格は RFC と呼ばれる文書にまとめられて公開されます。例えばプライベートIPアドレスの範囲はRFC1918で規定されています。
バイト と オクテット の違い
今日では、同じと考えて差し支えありません。
バイトは、情報量の単位。普通は8ビット。かつて大型コンピュータが主流の時代、メーカーによっては1バイトが6ビットとか9ビットでした。
オクテットは、明確に8ビットのこと。通信の世界では厳密さが要求されるので、オクテットを使うことが多いです。(例:第4オクテットが240のIPアドレス)
KB と KiB の違い
KB(キロバイト)は、1000(10の3乗)バイト。
KiB(キビバイト)は、1024(2の10乗)バイト。
コンピュータ分野では1024バイトを1キロバイトという慣例がありますが、一般的には国際単位系のSI接頭辞(10の累乗倍)に従うのはご存知の通りでしょう。両者を厳密に区別するため、IEC(国際電気標準会議)がKiBを推奨するようになったらしいです。
よほど正確さが求められる状況を除けば、これまで通りKBで十分でしょう。
ちなみに「累乗」と「べき乗」では指数の範囲が違います。累乗は自然数のみを扱い、べき乗は実数や複素数も含みます。
白黒 と モノクロ の違い
IT用語とは言えませんが、画像処理分野の開発で出てくるので解説します。
"クロ" の発音が同じなので混同し易いです。
白黒は、文字通り、白色と黒色だけで表現された画像。
モノクロは、モノクローム(monochrome
)の略で、つまり単色のこと。セピア色の写真のように、単色なら黒でなくてもモノクロと言えます。なので、白黒もモノクロに含まれます。
ハッカー と クラッカー の違い
どちらも卓越した技術を持っていますが、悪用するのがクラッカー、悪用しないのがハッカーです。
ハッカーに悪い意味は本来ありません。なので、卓越した技術を正義のために使う人をわざわざホワイトハッカーと呼んだりもします。
root と administrator の違い
どちらも、オペレーティングシステムにおける全権管理者(スーパーユーザ)の名前です。
rootは、UNIX系OSのアカウント名で、administratorは、WindowsOSのアカウント名です。
ロールバック と リバート の違い
どちらも、コミットされたものを取り消して元の状態に戻すことです。整合性を維持するために使われます。
ロールバックは、データベースにおいて、トランザクション(関連する複数の処理をまとめた不可分の処理単位)でエラーが発生した場合に、そのトランザクション処理を開始する前の状態までデータベースを戻すこと。
リバートは、Gitなどのバージョン管理システムや、Wikiの記事投稿システムで、前の版に戻すことを言います。(厳密には、git revert は指定したコミットと逆の内容をコミットする操作)
開発の現場では、元に戻す意味で「それリバートしといて」などと自然に使われます。
インシデント と アクシデント の違い
インシデントは、事故につながりかねない事件のこと。人間の判断ミスに焦点をあてヒヤリ・ハットと表現する現場もあります。
アクシデントは、実際に生じてしまった事故のこと。
情報セキュリティの分野では、個人情報流出、マルウェア感染、不正アクセスなど、セキュリティ上の脅威となる出来事をセキュリティインシデントと言います。上場企業ともなると、USBメモリを紛失しただけでもセキュリティインシデント発生で報告対象となり、事態の情報収集や公表、被害拡大の防止、再発防止策の策定に向けて社内の特別チーム(CSIRT)が動くことになります。
また、ITIL(運用管理のベストプラクティス集)においては「システム運用を通して提供されるサービスが中断したり、サービス品質を低下させたりする出来事」とインシデントを定義しています。
SLA と SLO の違い
どちらもサービス品質に関する用語です。
SLAは、Service Level Agreement
の略で、サービスの提供者が利用者に対して、どの程度のサービス品質を提供するのかを定義した契約事項のこと。定量的に評価できる形で明示され、一般的なクラウドサービスでは稼働率で示されることが多いです。定義されたサービス基準を満たせなかった場合のペナルティ(返金など)も盛り込まれています。
SLOは、Service Level Objective
の略で、SLAで取り決めた内容を達成するために、サービスの提供者が設定する目標のこと。SLOはあくまで目標値なのでペナルティは無く、利用者に開示する必要もありません。
CRM と SFA の違い
どちらも顧客情報を管理するシステムのことで、営業やカスタマーサポートに使います。
CRMは、Customer Relationship Management
の略で、直訳すると顧客関係管理。つまり、顧客との関係性を良好に保つために、顧客の年齢や性別、購買履歴などから顧客をセグメント化し、効果的なマーケティング活動を支援するツール全般を指します。アップセル(より高い商品を購入してもらうこと)やクロスセル(他の商品を併せて購入してもらうこと)が期待できます。
SFAは、Sales Force Automation
の略で、直訳すると営業力自動化。つまり、案件情報(何の商品をいくらで誰に、いつ提案し、その受注確度はどの程度かといった情報)や商談進捗、リード(見込み客)やプロスペクト(リードよりも購入見込みが高い顧客)の反応などを細かく入力することで営業活動をデータベース化し、属人化の排除と営業の生産性を高めようとするツール全般を指します。
近年はCRMとSFAを統合した製品が多く登場し、その境界線は曖昧になってきています。この分野で世界トップシェアを誇るのが Salesforce です。
なお、営業担当が行うのは見積書の作成までで、請求書の発行は経理担当の仕事であり、受発注管理システムに入力した後は経理担当に引き継ぐわけですが、SFAには受発注管理システムの機能を備えているものもあります。
IPoE と VPoE と VoIP の違い
いずれもIT業界で使われる用語ではありますが、意味は全く違います。
IPoEは、IP over Ethernet
の略。次世代のインターネット接続環境といわれ、今後主流になっていく回線方式です。NGN(次世代電話網)など事業者側のネットワークに直接接続し、L3ルーティングのみでパケット転送を行います。現在主流のPPPoEは、かつて電話回線のダイヤルアップ接続でインターネットに繋いでいた時代のPPPをイーサネットに無理矢理のせた接続方式のため、専用の通信機器、RADIUSによるユーザ認証が必要。IPoEではそうした手間もありません。
VPoEは、Vice President of Engineer
の略。技術部門のマネジメント責任者のこと。CTO(技術部門のトップ)が決めた企業の経営方針に従い、くせのあるエンジニア達をまとめ上げ、仕事が円滑に行えるよう指導する役割を担います。高度なコミュニケーション能力を要します。VPoEがいるとCTOは技術領域に集中できます。元々欧米にあったポジションですが、近年は日本でも浸透しつつあります。
VoIPは、Voice over Internet Protocol
の略。インターネット回線で音声データを送受信する技術で、この技術とSIP(通話相手の指定や発信、着信などの呼制御=シグナリング)を搭載した電話のことをIP電話と呼びます。
オフショア開発 と オンサイト開発 の違い
どちらも、外国人エンジニアに開発を委託する際の方法です。
オフショア開発は、海外現地企業の外国人エンジニアに開発を委託すること。設計などの上流工程を国内で行い、実装・テストを海外で行うことが多いです。アジア各国のエンジニア人件費は日本に比べるとかなり低く、コスト削減になります。オフショア先と円滑なコミュニケーションを取るためにブリッジSEを置くことが多いです。
オンサイト開発は、委託した現地企業の外国人エンジニアを日本企業に呼んで開発すること。オフショアと比べると当然コストは増えます。
なお、都心部にある企業が、地方の企業に開発を委託することはニアショア開発と言います。地方は最低賃金が低めに設定されているので人件費を抑えられ、オフショアと比べると言葉の壁が無いのがメリットになります。
機械学習 と ディープラーニング の違い
どちらもAIに関する基礎用語で、膨大なデータから法則性やルールを学習します。
マシンラーニング(機械学習) は、特徴の抽出方法、つまり何に着目すれば良いかは人間が定義する必要があります。
ディープラーニング(深層学習) は、機械学習の一種で、脳の神経経路(ニューラルネットワーク)を真似てモデル化したもの。大量のデータを食わせることで、何に着目すれば良いか?どんな特徴を利用すれば識別できるのか?をAIが自分で学習し、勝手に賢くなっていきます。なので、思わぬ方向に学習が進む可能性もあります。言葉で特徴を定義するのが難しい場合に高い効果を発揮します。
テレワーク と リモートワーク の違い
どちらも、オフィスに出勤せず遠隔で働くという意味ですが、テレワークには明確な定義があります。
それは「ICT(情報通信技術)を利用し、時間や場所を有効に活用できる柔軟な働き方」というもので、総務省や公的な団体が言っています。
筆者は、ICT(インターネット接続されたパソコン)を活用しているかどうかで使い分けています。
DX と デジタル化 の違い
バズワードと思われがちなDX(デジタルトランスフォーメーション)ですが、どうやら単なるデジタル化とは目的が違うようです。
デジタル化は、ITの様々なツールを活用してコスト削減や業務を効率化すること。導入しただけではDXを達成したとは言えません。
DXは、デジタル化を手段として業務(ビジネスプロセス・ビジネスモデル)に変革を起こし、働き方改革とか文化そのものを変えて競争に勝つことを目的としているようです。日本がDXで遅れを取ると危惧される理由もそこでしょう。なお、DXのXは、TransをXと省略する英語圏の慣例からきているらしいです。
さいごに
分かり易さ優先で細かい説明を省いたり、一部に主観的な表現が入っているものもあります。
本記事を読んだことで、より深く学ぶきっかけになれば幸いです。
Discussion