駆け出しITエンジニアが知っておくべき、IT専門用語集まとめ
IT業界では、コロナ禍で一時採用が止まっていた企業に採用再開の動きが見られ、ITエンジニアの採用が活発化。「事業会社ではハイレベルの即戦力採用が主流な一方で、アウトソーシング会社やセカンダリーを主とするSIerなどでは、未経験者の採用枠も増加傾向」である。
エンジニアとして仕事を進めるためには、「IT用語」に対する基礎知識が欠かせません。エンジニアが用いるIT用語の数は多く、これまで聞き馴染みがないからこそ「何から覚え始めたらいいかわからない」という方も多く聴こえる。この記事では、これからエンジニアになりたい人、キャリアをスタートさせたばかりの駆け出しエンジニアに向けて、エンジニアが普段から業務でよく使う「IT用語」の意味を解説します。
・HTML
ウェブページを作成するために開発された言語
文章構成の指示をコンピューターが理解できる形で表した。
・CSS(カスケーディング・スタイル・シート)
Webサイトの装飾に必要な言語。一般的にWebページでは、基本構造をHTMLで作成して、色などの見た目に関わる部分は、スタイルシートで変更。
・JavaScript
表示される広告に動きをつけたり、クリックされたボタンをへこませたりするなど、HTMLに出力した結果を書き換えて動きをつけることができる開発言語。
・JavaScriptのフレームワーク・ライブラリ
JavaScriptにおけるフレームワークとライブラリの違いは、
ライブラリ:便利なプログラムの部品をいっぱい集めて、ひとまとめにしたファイル。コードを使いまわすかどうか、というコードレベルの「部品」です。
フレームワーク:アプリケーション「設計」であるため、その設計に必要なプログラム制御はフレームワーク側で行われます。また、必要となる機能や、基本的な骨組みをまとめたものです。必要最低限のプログラムを書くだけでアプリケーションを作ることができます。開発工程を短縮させられるほか、コードの書き方が統一されることで、機能追加や改修が楽になる
・Java Servlet (ジャヴァサーブレット)
Webサーバ上で動くJavaプログラム
・Java
どんな環境でも動くプログラムを作れるプログラミング言語。WindowsでもLinuxでも動作可能。
・React
Reactとは、Facebook社が開発したWebサイト上のUIパーツを構築するためのJavaScriptライブラリ。
・UI(User Interface)
ユーザーとプロダクトをつなぐ接点。例えばドアノブのデザイン一つとっても「ユーザーが目に触れる」という意味においてはUIに含まれる。
Webサイトやアプリケーションに関して言えば、サービスのデザイン性や操作性
・Vue.js((ヴュー・ジェイエス))
UIを構築するためのJavaScriptフレームワーク。
VueはGoogleにおいてAngularJSを使用した開発に携わったエヴァン・ヨー (Evan You) によって開発。
・Angular
Googleが開発しているJavaScriptフレームワーク
・フロントエンド
WebサービスやWebアプリケーションで直接ユーザーの目に触れる部分のこと。WebサイトやWebアプリケーションなどでユーザーが文字を入力したり、ボタンをクリックしたりする部分。クライアントサイドとも呼ばれ、Webブラウザ側でプログラムを実行しています。利用する言語は主に、HTMLやCSS、JavaScriptです。
・バックエンド
サーバーサイド(Webサーバー側)やデータベースのシステムなど、ユーザーの目に見えない部分のことです。ユーザーが入力した内容などのデータ処理やデータベースへの保存、検索結果の出力といったことを行います。ユーザーからは見えない後方の部分の処理を担っていることが、バックエンドと呼ばれている理由です。利用する言語には、JavaやJavaScript、PHP、Python、Rubyといったプログラミング言語があります。
・フロントエンドフレームワーク
フロントエンドフレームワークはJavaScriptのフレームワーク。UIが大規模に複雑になってくるとユーザーの入力、Ajaxでのサーバー通信、UIの状態管理などを行うのが難しくなってきます。この問題を解決するのがフロントエンドフレームワーク。
・SPA(Single Page Application)
ページ遷移をすることなく、同一のページ内でコンテンツのみを切り替えるアプリケーション。一度ページを訪れたらページ遷移をすることなく、ユーザーはストレスフリーでWebサイトを閲覧できるようにする。
・レンダリング
表示用のデータをもとに、内容を整形して表示すること
参考;https://wa3.i-3-i.info/word1359.html
・ブラウザ
主なブラウザには、Internet Explorer、Firefox、Safari、Chrome、Opera。主な機能はユーザーの選択したウェブ リソースをサーバーに要求してブラウザ ウィンドウに表示することにより、ユーザーに提示すること。
・Next.js(ネクスト・ジェーエス)
Reactファイルを使ったアプリケーションフレームワーク。サーバ側でのレンダリングを行うことが可能。Reactでは、ブラウザ側でレンダリング。
・Nuxt.js(ナクスト)
Vue.jsベースのJavaScriptのフレームワーク。Vue.jsは基本的にクライアント側でのアプリケーション開発を目的としたフレームワークであり、サーバ側でレンダリングを行うサーバサイドレンダリング(SSR)に対応していなかったため、それを補う形で開発された。
・SSR(サーバーサイドレンダリング)
JavaScriptをサーバー内部で実行してHTMLを生成し、クライアントに返す仕組み。本来Webブラウザ上で実行されるものでしたが、サーバー側で実行することにより、処理を早められます。
・バックエンドクラウドサービス(BaaS バース ”Backend as a Service”)
開発時にアプリを運営するために必要なサーバーとの連携部分をBaaSで対応することで、開発者はサーバー側のことを業者にお任せできる分、アプリ自体の品質向上に注力することができます。アプリの実行を維持するために、サーバーや仮想マシンなどインフラを自社で保有する必要がありません。
・静的サイトホスティング
静的なwebサイトをホスティング(一般公開)すること。静的なwebサイトとは、htmlファイルをサーバにアップロードしておき、リクエストに対してそのままそのファイルをレスポンスするサイトのこと。
・静的サイト、動的サイト
通常のホームページとAmazon、二つのWebサイトの違い
Amazonは、人によって表示される商品が違います。
東大のホームページは誰がみても同じ内容です。
静的サイトはアクセスの前、動的サイトはアクセスの後に、HTMLの内容が確定します。
・ビルド
プログラミング言語で書かれたソースコードなどを元に、実行可能ファイルや配布パッケージを作成する処理や操作
・デプロイ
開発したアプリケーション(機能やサービス)をサーバー上に展開・配置して利用できるようにすること
・WordPress(ワードプレス)
CMSの一種。
・CMS(シーエムエス)
ホームページを作るよりはお手軽に、ブログを使うよりは自由に、ホームページっぽいものを作れるシステム
・API(アプリケーション・プログラミング・インターフェース)
ソフトウェアやプログラム、Webサービスの間をつなぐインターフェース。
ネットショッピングをする際にカード番号を打ち込みますが、番号・名前・期限・セキュリティコードなどの情報が安全性の低いネットショップのサーバに保管されると第三者に悪用される恐れがあります。そこでネットショップでは、カード会社が提供しているAPIが使われています。
ネットショップはAPIを通して「これからお客さまがカード情報を打ち込むから確認してくれ」と要求します。顧客によって打ち込まれた情報はネットショップを通さず、直接カード会社のサーバに届き、情報が確認され、ネットショップ宛に「カードを確認した。決済は完了」という連絡だけが送られます。ネットショップはカード情報を管理することなく決済が確認できるので、顧客は安全に買い物ができるようになり、ショップのサーバ管理コストも最低限に抑えられるというわけです。
・Zeen
エンジニアが自分の持っている技術情報を記事にして共有するサイト。これまでの既存メディア、特に「Qiita(情報共有)」そして「note(対価を得られる)」のいいとこ取りをしている。
・Git
プログラムのソースコードなどの変更履歴を、オフラインでもプログラムの編集などができる。その変更履歴も管理できる。https://www.sejuku.net/blog/5756
・GitHub
このGitの仕組みを利用して、世界中の人たちがプログラムコードやデザインデータなどを保存できるウェブサービス
・ディレクトリ
大量のファイルを整理、管理するための箱みたいなもの
・ブランチ
1つのプロジェクトから分岐させることにより、プロジェクト本体に影響を与えずに開発を行える機能のこと。現行のバージョンのプロジェクトから枝分かれさせて他の作業を行うときに使われます。
・リポジトリ
ファイルなり、プログラムなり、設定情報なり、何らかの「保管場所」
・サーバーレス
クラウドサービス提供側が実際のサーバーを用意し、管理を行う側が、サーバーレスに該当します。つまり、実際にはアプリケーションが稼働するサーバーが存在するものの、利用管理者はクラウドにあるサーバーの存在を意識せずに、機能としてアプリケーションやデータベースの利用ができるクラウド利用形態のこと。
・Webアプリケーションフレームワーク
Webアプリケーションを開発するための枠組み。Web開発において共通する様々な機能を一から作成する必要はなく、簡単に機能追加が可能になり、またコードの再利用をする事で開発作業の効率化を図れます。
・Ruby
文法が分かりやすくシンプルなコードが書ける。記述形式「オブジェクト指向言語」モノ(どんな奴でどう動く)」に注目した考え方のことモノと、そのモノができること(役割)を決めます。スクリプト言語:コンパイルせずにソースコードを書けばすぐに実行できる点。
・コンパイル
人間が読みやすい形で記述されたソースコードを、パソコンなどのCPUが理解できる形に翻訳すること
・Python(パイソン)
おもにアプリ開発や機械学習分野で採用されている、サーバーサイドのプログラミング言語。
少ないコードで簡潔にプログラムを書けること、専門的なライブラリが豊富
・PHP
動的なコンテンツの作成に向いているプログラミング言語
・Ruby on Rails(ルビーオンレイルズ)
Web開発向けのフレームワークとして設計されているため、Webアプリケーションを作るのに適しています。単純なWebサイトやSNSを初め、決済機能を備えたショッピングサイト、サイトからデータを取得するクローラーの開発等。
・Django(ジャンゴ)
Pythonで実装されたWebアプリケーションフレームワーク
・Laravel(ララベル)
PHPのフレームワーク
・AWS(Amazon Web Service)
Amazon.comが提供するクラウドコンピューティングサービス
・AWS S3
オブジェクトストレージサービスの一種。データ容量を気にすることなく保存することができます。オブジェクトのファイル単位での出し入れが可能なので、その場に応じて自由な使い道が想定され、より柔軟なデータ保存が実行できるのが特徴
・AWS Amplify
モバイルアプリケーションやウェブアプリケーションを構築するための開発プラットフォームのことです。AWSの様々なサービスを使用し、クラウドサービス上で安全かつ簡単にアプリケーションを開発することが可能です。
・オブジェクトストレージサービス
一般的なファイルストレージは大型ショッピングモールの駐車場のイメージ。オブジェクトストレージはタワー型の立体駐車場のイメージ。IDだけでオブジェクトを出し入れするため、格納場所を覚えておく必要がない。大量データの保管に向いている上、データ量の増加にも柔軟に対応していくことができる。
・アーキテクチャ
「構造」とか「構成」みたいなことをカッコ良く言った用語。
・OS (operating system)
パソコンの人格に相当するソフト。パソコンWindows、Mac、Linux辺りが有名。スマホの世界であればiOS、Android。
・アプリケーション
正式名称はアプリケーションソフトウェア。アプリケーションと省略されるのが一般的。アプリケーションはOSと対比されるためにある用語。
コンピュータの人格に相当するソフトウェアがOSです。OS以外のソフトウェアがアプリケーションです。 例:Word,Excle,ペイント、メモ帳 etc.
・ミドルウェア
OSはコンピュータを使う上で最低限必要な基本機能を提供。アプリケーションはOSではできない特別なことができる機能を提供。このOSとアプリケーションの間に入って特別なことをするときに使う基本機能を提供。OSとアプリケーションの中間で頑張るプログラム。
・ランタイム
実行時のこと、あるいは、実行時に必要な物のこと
・パッチ
ソフトに変更を加えるために用意された、後付けのプログラム
・Kubernetes (クバネティス)
管理対象が大きくなって Docker が増えた場合などには、Kubernetes を活用することで複数の Docker ホストを管理する手間が減り、コストを削減にも繋げられます。その他、コンテナのスケジューリングやオートスケーリング、データの管理など、Docker だけでは実現しにくいことが、Kubernetes を利用すると可能
Kubernetes | Docker | |
実行場所 | クラスタ | 単一ノード |
利用目的 | コンテナの管理 | アプリケーションのコンテナ分離 |
・Docker(ドッカー)
コンテナ技術を使いやすくまとめたオープンソースのソフトウェア。OS内部に独立したアプリケーションの実行環境(コンテナ)を生成することが出来、いつでもその環境を立ち上げることが可能。
・カーネル
OSの中で、中核部分として頑張っているソフトウェア。ハードウェアとソフトウェアの仲立ち等をしている。
・コンテナ
最も大きな利点は、「コンテナを一度作ってしまえばそれを何も変更しないで違う環境に載せ替えて実行することができる」ということ。従来型のようにアプリケーションを動かすために必要なハードやOSやミドルウェアを苦労して個別に用意する必要はなくなります。Dockerエンジンさえ動いていれば、どの環境でもすぐに動かせる。
・クラスタ
細かく区分けされたセクタですが、このセクタをいくつか集めたものがクラスタです。
・ノード
ネットワークに接続されているコンピュータ・ルータ・サーバ、さらにはネットワーク接続されたプリンタといった機器1つ1つを指す
・オープンソースソフトウェア(OSS)
中身が公開されていて改造したり配ったりしてOKなソフト
・マイクロサービス
マイクロサービスアーキテクチャとも呼び、ソフトウェア開発アプローチの1つ。複数のサービスや機能を疎結合させて構築します。マイクロサービスはサービス指向のアーキテクチャの一形態ですが、一般にサービス指向アーキテクチャ(SOA)よりも安定性と柔軟性が高く、開発が容易です。
・疎結合
システムの構成要素間の結びつきや互いの依存関係、関連性などが弱く、各々の独立性が高い状態
・モノリシック
ソフトウェア設計の際、部分的に分割をせず、全て同一のモジュールとして作り上げる。ソフトウェアが動作する際に外部モジュールを使用しないため、モジュール間通信が必要なく高速な動作が可能になる。一方で、すべてのコードを一体化しているために、修正や追加をしにくい。
・モジュール
単独でも機能としては成立するけど、普通は他のものと組み合わせて使う部品のこと
・サービス指向アーキテクチャ (SOA)
システムを「1つのデカいシステム」と捉えるのではなく「それぞれの機能を提供する部品(サービス)の集まり」と見なす考え方
・スケーラビリティ
システムの利用や負荷の増大、用途の拡大などに応じて、どれだけ柔軟に性能や機能を向上、拡張できるかを表したもの。
・NoSQL
多くの企業で使われているリレーショナルデータベース管理システム(以下、RDBMS)以外のデータベース管理システムの総称。RDBMSとNoSQLの主な違いは、SQL言語を使うか使わないかにあります。RDBMSは、複雑なデータ構造を持つデータの取り扱いに向いている反面、その複雑さによりデータの肥大化によるDBの性能劣化を招きやすい。膨大のデータを簡単に取り扱え、教育コストも低いNoSQL。
・Flutter
「Flutter」は、Googleが提供しているモバイルアプリ用のフレームワーク。「モバイルアプリフレームワーク」という位置付けで、AndroidとiOSを同じソースを共有して、同時に作成することができる。機能性と将来性の高さから、システム開発に導入するエンジニアも少なくない。このFlutterはオープンソースで利用でき、企業や個人を問わず気軽に利用できるフレームワーク。
・DevOps(デブオプス) ソフトウェアの開発(Dev)と運用(Ops)の合流を意味する。開発者と運用者が密接に協力して、より迅速に、かつ安定的にアプリケーションをリリースし、運用する手法や文化のこと。
・CI/CD(Continuous Integration/Continuous Deployment) 継続的インテグレーション(CI)は、コード変更を頻繁に自動でテストしてマージするプロセス。継続的デプロイメント(CD)は、アプリケーションを自動で本番環境にリリースするプロセス。この二つを組み合わせることで、ソフトウェア開発の効率化と品質向上を図る。
・Microfrontend(マイクロフロントエンド) マイクロサービスの考え方をフロントエンド開発に応用したアーキテクチャ。大規模なフロントエンドアプリケーションを小さな、独立した部品に分割し、チームごとに異なるフレームワークやバージョンで開発を行うことができる。
・GraphQL Facebookによって開発されたデータクエリ言語で、RESTful APIの代替として利用されることが多い。フロントエンドから必要なデータを効率的に取得することが可能。
・Serverless Architecture(サーバーレスアーキテクチャ) サーバーの設定や管理をクラウドサービスプロバイダが担い、開発者はアプリケーションのビルドに集中できるアーキテクチャ。AWS Lambdaが代表的な例。
・Containerization(コンテナ化) アプリケーションをコンテナと呼ばれる軽量な実行環境にパッケージングする技術。DockerやKubernetesが有名。
・Blockchain(ブロックチェーン) 暗号通貨やスマートコントラクトなど、分散型デジタル台帳技術。改ざんが困難で、透明性が高いため、さまざまな産業での応用が期待されている。
・AI & Machine Learning(AIと機械学習) アルゴリズムを用いてコンピューターに学習させ、人間のように判断や予測を行わせる技術。データサイエンスや自動化技術の進展に不可欠。
・Edge Computing(エッジコンピューティング) データ処理をクラウドではなく、データの発生源に近い場所(エッジ)で行う技術。IoTデバイスの普及に伴い、重要性が増している。
まとめ
IT用語はどこかしらで使用する機会が来るため、覚えておく用語が多いのですが一つ一つ覚えていきましょう。
EXPACTではITエンジニアのスタートアップや資金調達支援も実施しております。気軽にご相談ください。
その他、基本編のコラムはこちら