エンジニアが効率良く仕事を進めるためには、IT用語についての知識が必要になります。とはいえ、それぞれの領域やプロジェクト内容によってIT用語が異なるため、使われるIT用語は膨大に。何となく知っているつもりで業務を進めていると、相手とのコミュニケーションでズレが生じてしまいます。
そこで今回はIT用語をわかりやすく解説している書籍『見るだけIT用語図鑑278』の著者・草野 俊彦さんに、現場で役立つIT用語の知識について伺いました。エンジニアを目指している方や、エンジニアとして働き始めた方が知っておきたい基本的な用語をイラスト付きで解説しています。(イラスト/めんたらこ)
■ 草野 俊彦
みらいアクセス合同会社 代表
1986年千葉大学工学部卒業、日本電気株式会社に入社。高度先端基幹通信システムの研究開発に携わる。米国デラウェア大学コンピュータ情報科学科の客員研究員に従事。NECアメリカに駐在し、ネットワーク管理システムの基本ソフトウェア開発を推進。
2007年米国系半導体企業に移り、通信機器組込システムの開発を主導。2010年ネットワーク仮想化ソフトウェア開発ベンチャーを、イスラエルで起業。過去20年間にわたって、国際機関におけるIT技術の標準化に貢献。米国電気電子学会(IEEE)の標準化小部会での議長も務める。
IT用語の「知ってるつもり」は要注意
草野さんはさまざまな現場を経験されていますが、IT用語に対してどんな風に感じていますか?
IT用語との付き合い方は、自分が担当している領域や業務によって大きく変わってきます。例えば、ハードウェアとソフトウェアのどちらなのか、さらに言えばWeb、DX、インフラ、アプリケーションなど、それぞれの領域でよく使われる言葉の意味を理解しておく必要があります。
IT用語は膨大にあるので、まずは意味だけ知っておけばいいのでしょうか。
自分が担当している業務領域の用語で、「何となく知っている」状態は危険だと思います。お互いに話していることがかみ合わず、誤解から業務に支障をきたしたり、場合によっては作業のやり直しにつながることも。プロジェクト全体に迷惑をかけないためにも、用語の使い方まできちんと知っておいた方がいいでしょう。
たしかに「知ってるつもり」で話していると、周囲にも迷惑がかかりそうですね。
一方で自分が担当していない領域のIT用語については、意味を理解しておくだけでコミュニケーションが取れることも多いと思います。例えば、AIを使ったアプリを作っているときに、APIを使って機械学習のロジックを活用しているだけなのであれば、深層学習の詳しい知識はそこまで求められません。
なるほど、自分の業務との関連性を意識しながらIT用語を学んでいくと良さそうですね。それでは現場で役立つIT用語を、それぞれの領域ごとに教えてください。
コンピューターがわかる基本のIT用語
クロックとコア
▶クロックはコンピューターを決まった速度で動かす信号
▶コアはCPUの中に入っている演算処理部
▶クロックが速くコアが多いほどコンピューターの性能が高くなる
コンピューターの頭脳が「CPU」であることは、誰でも知っていると思いますが、それがどのように動いているのか理解するためには、「クロック」と「コア」について知っておくことが大切です。
CPUを動かすためには、クロックとコアが必要ということでしょうか。
はい、CPUを動かす基準となるタイミング信号がクロックで、クロック数が高いほど速く計算できます。一方のコアは、CPUの中の頭脳の数で、コアの数が増えれば処理を並行して行えるので性能が向上します。
なるほど、マルチコアになると処理性能が速くなるのはそういうことですね。
昔は1コアが当たり前でしたが、現在は4コア以上のCPUを使ったPCが普及してきました。各コアが分担して別々のアプリの処理などを並行して進められるので、処理性能は初期のPCに比べ格段に速くなっています。
キャッシュ
▶データをすぐに使えるCPU内のメモリ
▶CPUが外部のメモリからデータを読み込む時間を短縮するために使う
▶Webブラウザにも既に見たページを保存するキャッシュがある
CPUの性能には、メモリも大きく影響しています。CPUは、命令やデータをメモリから読み出して処理するのですが、それには一定の時間がかかります。それを短縮するのがキャッシュの役割です。あらかじめ必要な命令とデータをCPU内に読み込んでおいて、すぐに使える状態にしています。
なるほど、データのコマンドもキャッシュに入っているんですか?
その通りです。キャッシュは数回分の処理に必要な命令とデータを記憶できれば良いので、比較的小さいサイズでCPUに内蔵できています。CPUとは異なりますが、ブラウザにもキャッシュの考え方があり、既に閲覧したページのデータを記憶して、通信速度の影響を受けずに一度見たページを素早く見ることができます。
BIOSとUEFI
▶PCのハードウェアを動かす縁の下のソフトウェア
▶パソコンを立ち上げてすぐのメーカー名表示はBIOS起動中を示す
▶UEFIは以前のBIOSの制約を取り除いた、新たなBIOSの名前
BIOSとUEFIは、PCの基本構造を知る上で重要です。BIOSは電源が入るのと同時に起動して、CPUやキーボード、モニター、ハードディスクなどのハードウェアを使える状態にしてからOSを動かします。
UEFIはBIOSとどのように違うのですか?
UEFIはBIOSの機能拡張版です。従来のBIOSには、2テラバイト以上のハードディスクを扱えないなど機能上の制約があったので、UEFIはこの点を改善しています。BIOSの規格として新たにUEFIを追加しており、一般的にはUEFI対応のBIOSを「UEFI」と呼んでいます。
レジストリ
▶Windowsが管理するOS自身やアプリなどの設定情報ファイル
▶ログオンするユーザーごとにアプリの設定など変更可能
レジストリはシステム情報を一括して保存するWindows OSの管理データベースです。どのソフトウェアをどこに配置したのか、アプリケーションからハードウェアまであらゆる情報を管理しています。
レジストリについては、誤って一部分を変更してPCが動かなくなるなど、苦い経験をしたことがあります。
そうですね、間違えて書き換えてしまうと正常に動かなくなるので注意が必要です。手動でしか修正できないときのために、レジストリエディタという編集ツールも用意されていますが、内容を正確に理解せず変更するのは危険なので避けた方がいいでしょう。
エンジニアの実務で役立つIT用語
API
▶プログラムが他のプログラムの機能を利用するときに使う
▶アプリケーションはOSのAPIを利用してOSの機能を使っている
▶APIを使うときは仕様で決められた使い方を守る必要がある
APIはプログラムが他のプログラムに仕事を頼むときの呼び出し口で、多くのアプリに実装されています。例えば、Webサイトでの所在地ページの多くは、Googleの地図を掲載していますが、これは掲載したい地図をGoogleマップなどのアプリケーションのAPIから呼び出し、その情報を使って地図を表示しているのです。
Web APIで、ブラウザとアプリをつないでいるということですね。
一方でOSのAPIでは、OSが提供する機能を利用するための手順と形式を、仕様として定義しています。OSのAPI仕様に沿ってアプリを設計すれば、このAPIを使うだけでOSの細部を知らなくてもその機能を利用できます。
オブジェクト指向
▶プログラムや仕様を作るときに、似たもの同士をひとまとめにする考え方
▶現実世界の物を抽象的なモデルとして表現
▶モデルを扱うことで、汎用的・効率的にプログラムを作れる
オブジェクト指向は、今非常に重要な用語で、ほとんどのプログラムがこの考え方で作られています。
車の例は非常にわかりやすいですね。
車の名前やメーカーが違っていたとしても、エンジン・タイヤ・ハンドルなど共通の特徴があれば車と呼んでいる。このような抽象化がオブジェクト指向という考え方です。複数の物を一つのモデルとして捉え、個々の車ではなくモデルを扱うプログラムを作ることで効率的な開発が可能になります。
アジャイル
▶短い開発サイクルを何度も繰り返すソフトウェア開発手法
▶大まかな仕様で開発をスタートし、イテレーションと呼ぶサイクルを繰り返して改善
▶最近では開発手法としての意味以外に、必要なときに必要な人材を集めて組織化する意味でも使われる(例:アジャイル型組織、アジャイル経営など)
アジャイルは「すぐに作って何度もリリースする」という意味の開発手法です。実際の開発現場では、アジャイルと従来のウォーターフォール型の両方がありますね。
どのようなケースでアジャイルが使われるんですか?
技術革新が早く、ユーザーの要望もいろいろと出てくるようなプロジェクトでは、柔軟性のあるアジャイルが向いています。一方で、データ管理やシステム管理など、何を作るのか内容が明確で厳密な仕様が必要とされるソフトウェア開発には、ウォーターフォール型の方が向いているというのが一般的な理解です。
オープンソース・ソフトウェア
▶誰でも無料で使えて、自由にカスタマイズできるソフトウェア
▶変更時は変更内容の公開が必要なので、企業秘密などがあると使えない
▶オープンソースソフトは動作保証がなく、利用者が全責任を負う
最近では、オープンソース・ソフトウェアを企業のシステムに取り入れるケースが増えてきました。多くのエンジニアによって使われることで機能追加や修正が行われ、技術的な完成度の高いものも多く、ソフトウェアをゼロから構築する必要がありません。
メリットの多いオープンソース・ソフトウェアですが、知っておくべき注意点はありますか?
著作権と商用利用については知っておいた方がいいと思います。オープンソース・ソフトウェアは、作成者が著作権を明示的に放棄しないかぎり、作成者の著作権が法的に保護されています。そのため、ユーザーが商用利用するときにはそれぞれのライセンス条項の規程をしっかり守る必要があります。
インターネットの技術がわかるIT用語
IPv6
▶Web上でデバイス同士を識別・通信するためのアドレス方式IPv4の後継バージョン
▶約340澗(340兆 × 1兆 × 1兆)もの膨大なアドレスが使える
▶IPv4との互換性はなく、両者が共存しながら徐々に普及している
IPv6は、好きなだけIPアドレスを使えるようにしたIPv4の後継バージョンです。現在広く使われているIPアドレスの方式・IPv4で発行できるアドレス数は、約43億だといわれていますが、それを世界中の全ての人に配布すると足りなくなってしまいます。そこで新たに規定されたのがIPv6です。
IPv6は現在どれくらい普及しているんですか。
正確な数は明らかになっていませんが、実はそこまでIPv6が増えていないという説もあります。IPを必要とする端末が増えているものの、Wi-Fiルーターなどローカルエリアネットワーク(LAN)内でローカルIPアドレスを活用する場合も多いからです。そのため、新たにIPアドレスを払い出すケースは当初の想定よりも少ないと考えられています。
WWWとHTTPとHTTPS
▶WWWはインターネットの情報を相互にリンクすること
▶HTTPとHTTPSはWebページをインターネットで送る決まり
▶HTTPとHTTPSの違いは、セキュリティ(暗号化)の有無
HTTPとHTTPSは、どちらもハイパーテキストと呼ばれるHTMLで記述されたWebページの内容を、インターネットで転送するための通信の決まりです。
ハイパーテキストを送るため、HTTPやHTTPSが必要だったということですね。
そうなんです。最初期のインターネットは、主に学術研究のネットワークの中で使われましたが、ベタ打ちと呼ぶ書式なしテキストしか送れませんでした。それらの学術文書において、多数の論文を参照する機能をWeb上で実現したのがハイパーテキストの始まりです。Webが社会へ広まったのは、リンク情報(URL)を埋め込んだテキストを簡単に共有できるようになったからだといえるでしょう。
HTTPとHTTPSの違いは、セキュリティ(暗号化)の有無ということですが、具体的にはどのように違うのでしょうか。
HTTPは通信内容を暗号化せずに送っているため情報が丸見えですが、HTTPSはSSL/TLSを使って内容を暗号化しているので安全性が高まります。
cookie(HTTP cookie)
▶Webサイトがユーザーの操作を、サーバー経由でブラウザに記録する仕組み
▶保存するデータは、Webサイトを使用しているユーザーの一時的な状態
▶ログイン状態を保存することで、一度のログインで済む
cookieはHTTPとセットで覚えておいた方がいい用語で、HTTPがユーザーの操作を保存できない(ステートレス)ため、cookieの仕組みが必要とされています。保存する情報は、ログイン情報、サイトの訪問履歴、オンラインショッピングのカートの中身などです。
なるほど、HTTPとcookieをセットで覚えておくと理解が深まりますね。
cookieの問題点としては、cookieを保存しているPCやスマホの盗難・紛失により個人情報が流出してしまう可能性があることです。最近では、cookieの規制が進んでおり、サイト訪問時に同意を求められることも増えてきています。心配な場合は情報提供を拒否するなど対策を講じた方が良いでしょう。
CDN
▶Webサイトの情報をコピーしてインターネットの各所に配置
▶ユーザーは自分の近くのコピー情報にアクセスするためすぐに情報を取得できる
▶CDN事業者がCDNサーバーを用意して自動的に配信
皆さんが地球の裏側の情報や動画をすぐに見れるのは、CDNがあるからです。CDNはインターネットの中に構築されたコンテンツ配信用のネットワークの名前で、CDN事業者が提供しているサービスです。大元のWebサーバーにあるコピーを、複数のCDNサーバーに保存しています。
CDNが私たちの情報取得に大きく寄与しているということですね。
はい、コンテンツ提供者がCDN事業者と契約しており、ユーザーがコンテンツ提供者のサーバーにアクセスするとCDNサーバーに転送するよう設定を行っています。また、Googleなど大手グローバル企業は専属のCDNを持っており、スムーズなアクセス環境を提供しています。
セキュリティで知っておくべきIT用語
マルウェア
▶不正や有害な動作をするプログラムの総称
▶マルウェアの悪事は、目に見えるものと見えないものがある
セキュリティ分野のIT用語は、まず悪事を行うものから紹介します。マルウェアは不正や有害行為を行ったり、利用者の意図に反する行為を行ったりするプログラムの総称です。よくあるのは、Eメールに悪質なリンクを埋め込んでおくパターン。詐欺サイトへの誘導や、クリックした瞬間にPCにインストールされデータをかき集め、それを外に送信するものもあります。
怖いですね。私も対策としてウイルス対策ソフトをできるだけ最新にしながら、むやみにインストールしないように心がけています。
アドレスのドメインや送信元をしっかり確かめることも必要です。情報を盗んだり作業を監視したりするタイプのマルウェアは、被害がわかるまで感染に気づかないこともあるので、危機意識は常に持っておいた方が良いでしょう。
ランサムウェア
▶ランサムは人質の意味で、データなどを人質に身代金を要求
▶データの暗号化やアプリを起動できなくさせて、被害者を脅す
▶マルウェアの一種なので、ウイルス対策ソフトなどで対策する
ランサムウェアはマルウェアの「脅迫版」で、コンピューターシステムやその中のデータを人質に取って、利用者に対して金銭などを要求します。暗号キーはランサムウェアを仕掛けた犯人が持っています。
どれくらいの被害が出ているんですか?
世界中の企業で被害が出ており、中には何十億円を支払ったケースもあるようです。感染経路は社員のPCから広がることが多いので、組織を守るためにも日頃から注意が必要です。対策としては、マルウェアと同じくウイルス対策ソフトなどを活用することが重要になってきます。
DMZ(非武装地帯)
▶サイバー警備隊がいないネットワーク空間
▶社内ネットワークとインターネットの間に設けられる
▶DMZにはインターネットに公開するWebサーバーなどを置く
なぜ、インターネットとの間にDMZが必要なんですか?
インターネットからの悪意ある攻撃で、もし社内にある外部発信用サーバーが乗っ取られると、社内が攻撃の危険にさらされます。DMZに外部発信用サーバーを設置することで、被害の拡大を防げるというわけです。
その場合、DMZに設置した外部発信用サーバーの安全性が低くなるのでは?
DMZに設置する外部発信用サーバーの両側にファイアウォールを設置することで、ある程度のリスクを回避することができます。社内ネットワーク→ファイアウォール→DMZ→ファイアウォール→インターネットとなり、ファイアウォールの二段構えということですね。
SSL/TLS
▶ブラウザとWebサイト間の通信を暗号化する方式
▶SSLの後継の規格がTLS
▶SSL/TLS通信時にはブラウザのURL窓に鍵マークが表示
Webサイトを見るとき、ブラウザからWebサイトへ見たいページや入力したパスワードなどの情報が送られていますが、SSL/TLSで通信を暗号化すればその内容が外に知られることがありません。
SSLとTLSはそれぞれ別の方式ですが、なぜ両者を合わせたSSL/TLSで呼んでいるんですか?
SSLは1990年代に開発されたものの重大な欠陥が見つかり、それを解決したTLSが使われるようになりました。現在はTLSが使われていますが、既にSSLが普及していたのでそのまま併記してSSL/TLSと呼ばれています。
DLP
▶機密情報を社外に持ち出さない、持ち出させない戦略を指す言葉
▶機密データの漏洩を防ぐためのソフトウェアやシステムを指すこともある
DLPの対象は、印刷した紙、USBメモリ、電子メール、データベースの情報など、機密情報は全て当てはまります。そのため、ゴミ箱に重要な情報が書かれた紙を捨てるのを防ぐことはもちろん、PCに覗き見防止のスクリーンを貼ることもDLPの一種です。
セキュリティの意識が各社で高まっているので、DLPは重要な用語ですね。
データの持ち出し対策もいろいろありますが、印刷やコピーの禁止、USBメモリの使用禁止、社内メールサーバ−以外からの情報発信の禁止などは、多くの会社で取り組んでいるのではないかと思います。
IT用語は覚えるだけでは意味がない
重要なIT用語について解説していただきましたが、効率良くそれらの用語を覚えるにはどうすれば良いのでしょうか?
用語だけ覚えていてもその言葉を使えるとはいえず、その用語が示している重要な部分を自分の中でつかんでおくことが重要です。そして、それぞれの領域ごとに他のIT用語とも関連付けておけば、例え一つを忘れても「あの用語何だっけ」とすぐに調べることができます。忘れたときは何度でも調べれば良い、それが最適なIT用語との付き合い方だと思います。その繰り返しの中で、必要な用語は自然と覚えられます。
なるほど、何度も調べることでより深い知識が得られそうですね。
あとは同僚や先輩が使っているIT用語を、積極的に取り入れて話すのも有効だと思います。好奇心を持ってIT用語と付き合っていくと良いかもしれません。
たしかに、新しい用語を使うことで自分の世界が広がっていきそうです。
IT用語には「事実に即した言葉」と「何かの意図で作られた言葉」があります。なかには特定の商品をPRするための言葉など、マーケティング的な観点で使われていることもあるので、そのIT用語が何のために使われているのか、その背景を理解できるセンスを磨くことをおすすめします。きっとそれが、皆さんとIT用語との距離を縮めてくれますよ。
ライター
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから