🔥
【転職】技術質問とその回答
はじめに
今年の2月から、転職活動を始めています!🔥
しかしまあ、面接での技術質問が不安すぎる…!
というわけで、チートシートを作りました。
同じように転職活動中の誰かのお役に立てれば嬉しいです😊
こちらのスクラップも併せてどうぞ👇
基本編
オブジェクト指向プログラミングとは?
- プログラムの要素をオブジェクト(モノ)として扱う考え方を用いたプログラミングのこと
- 「車」というオブジェクトを作って、特徴や機能を持たせて扱う
- オブジェクトの元になる「ひな型」を定義しておくことで、さまざまなオブジェクトを生成できる(「車」というひな型から、救急車/消防車/パトカー/タクシーを作るなど)
- 参考『オブジェクト指向とは?意味や言語の種類、基礎知識もわかりやすく解説』
その他オブジェクト指向に関する質問
カプセル化とは?
- オブジェクト内のデータをカプセルのように閉じ込めて、外部からアクセスできなくすること
継承とは?
- 親クラスをもとに子クラスを作り、特徴や機能を受け継がせること
ポリモーフィズムとは?
- 同じ名前のメソッドや関数が、異なるオブジェクトやデータ型に対して異なる動作をする能力のこと
コンストラクタとは?
- インスタンスを作ったタイミングで実行されるメソッドのこと
オーバーロードとオーバライドの違いは?
- オーバーロード:同じ名前で引数が異なるメソッドを複数定義すること
- オーバライド:継承したスーパークラスのメソッドの内容を、サブクラスで上書き(再定義)すること
MVCモデルとは?
- プログラムをモデル・ビュー・コントローラの3つに分けて管理するソフトウェア設計モデルのこと
- モデル:ビジネスロジックを担当する部分。DBとデータをやり取りしたり、データの登録・更新・削除などの処理をおこなう
- ビュー:表示や入出力などのユーザーインタフェースを担当する部分
- コントローラ:モデルとビューの制御を担当する部分。モデルにデータ処理の指示を出したり、ビューに画面表示の指示を出したりする
- 参考『【解説】MVCモデルとは?メリット・デメリット』
アルゴリズムとは?
- 問題を解決したり目標を達成したりするための計算方法や処理方法のこと
- アルゴリズムの種類
- ソートアルゴリズム:整列や並べ替えをおこなうアルゴリズムのこと
- 探索アルゴリズム:複数のデータ内を探索して条件に合ったデータを探し出すアルゴリズムのこと
- 参考『アルゴリズムとは?【意味を簡単に】フローチャート、種類』
OSとは?
- Operating Systemの略
- パソコンの操作やアプリなどを使うために必要なソフトウェアのこと
- 参考『OSってなに?』
仮想化とは?
- ハードウェア(物理)の機能をソフトウェア(論理)によって実現する技術のこと
- 物理的なマシンを仮想化した「仮想マシン」、物理的なネットワークを仮想化した「仮想ネットワーク」などがある
- 参考『仮想化技術ってなんだろう?なぜ必要なの??』
コンテナとは?
- アプリの動作環境を仮想的に構築する技術の1つ
- 仮想マシンがハードウェアまるごとを論理的に実行するのに対し、コンテナはOSに共通のカーネルを利用し、アプリケーションの実行環境だけを別々のものとして分離している
- 参考『仮想化技術ってなんだろう?なぜ必要なの??』
テスト駆動開発とは?
- テストファーストな開発手法の1つ
- Test-Driven Developmentを略してTDDと呼ばれる
- 「テスト→実装→リファクタリング」を何回も繰り返してプロダクトを成長させていくような開発手法のこと
- 参考『テスト駆動開発(TDD)とは?目的やメリット・デメリット、やり方を解説』
アジャイル開発とは?
- 「計画→設計→実装→テスト」といった開発工程を、機能単位の小さいサイクルで繰り返すこと
- ウォーターフォール開発と違って、仕様変更に強い
- 参考『アジャイル開発とは? 特徴とメリット・デメリット、スクラムまで徹底解説』
MVPとは?
- 「Minimum Viable Product」の略
- 想定するユーザーに対して「コアとなる価値」を提供でき、有効なフィードバックが得られるだけの最小限の機能を持つ製品のこと
- タイヤから開発して車になってリリースするのではなく、「乗れる」という価値をすぐに提供できるスケートボードからリリースする
- 参考『MVP開発とは|そのメリットと開発のポイント』
ビルドとデプロイの違いは?
- ビルド:ソースコードから実行可能なアプリケーションを生成すること
- デプロイ:ビルドされた実行ファイルを実行可能な環境に配置し、実行できるようにすること
- 参考『デプロイとは?コンパイル、ビルド、デプロイの違いを解説』
CI/CDとは?
- CI:継続的インテグレーション
- CD:継続的デリバリーまたはデプロイメント
- 一定の品質を保証しながら、素早くアプリケーションをデプロイする自動化の手法
- ビルド、テスト、デプロイなどを自動でおこなう
- 参考『CI/CD とは?開発に欠かせない理由と必要性を解説』
CRUD処理とは?
- 「Create(生成)」「Read(読み取り)」「Update(更新)」「Delete(削除)」の頭文字を並べた用語のこと
- データを操作するときに必要な最低限の機能
- 参考『CRUD(クラッド)とは』
例外処理とは?
- プログラムの実行の継続を妨げる異常な事象(例外)が発生したときに、その内容に応じて実行される処理のこと
- 例外処理が記述されていないと、実行不可能になってシステムが終了してしまう
- 参考『例外処理』
バリデーションとは?
- 入力内容や記述内容が要件を満たしているか確認すること
- 参考『バリデーションとは』
同期処理と非同期処理の違い
- 同期処理:コードを順番に処理していき、1つの処理が終わるまで次の処理はおこなわない
- 非同期処理:コードを順番に処理していくが、1つの非同期処理が終わるのを待たずに次の処理をおこなう
- 参考『非同期処理:Promise/Async Function』
Web
HTTPとHTTPSの違いは?
- HTTP:HyperText Transfer Protocolの略
- HTTPS:HyperText Transfer Protocol Secureの略
- HTTPSは通信がSSLによって暗号化されている
- SSL(Secure Sockets Layer):インターネット上のウェブブラウザとウェブサーバ間でのデータの通信を暗号化し、送受信させる仕組み
- 参考『HTTPSとは? HTTPとの違いとは? 簡単解説』
GETとPOSTの違いは?
- どちらもHTTPリクエストメソッドで、データを取得したりサーバーに送信したりするために使用される
- GET:データはヘッダーで送信されるため、送信できるデータ量に制限がある。データがURLバーに公開されているため、リクエストは保護されない
- POST:データはボディで送信されるため、送信できるデータ量に制限はない。データがURLバーに公開されないため、リクエストは保護される
- GETはブックマークできて、POSTはブックマークできない
- 参考『「GETメソッド」と「POSTメソッド」の違い』
クッキーとセッションの違いは?
- クッキー
- ブラウザ側に保存される
- ログイン状態の維持や、ユーザーの好みなどを記録する
- クッキーを使用することで、次回からログインなどの手続きをすることなくWebサービスを利用できたり、好みに応じた広告を表示させることができる
- 有効期限があり、有効期限内はブラウザを閉じてもデータが残る
- セッション
- サーバー側に保存される
- ユーザーのアクション履歴や、処理状況などを管理することができる
- 新規登録やログイン後、そのサイトのユーザーとして作業をおこなうことができるのはセッションのおかげ
- セッションはブラウザを閉じると自動的に破棄される。一定時間アクセスがない場合も破棄されることがある
- 参考『セッションとCookieの7つの違いをざっくり解説』
APIとは?
- Application Programming Interfaceの略
- あるソフトウェアの機能を、別のソフトウェアから呼び出す仕組みのこと
- 参考『APIとは? API連携の仕組みや事例をわかりやすく紹介』
SPAとは?
- Single Page Applicationの略
- 単一のページでWebアプリケーションを構成する設計構造のこと
- SPAが実装されたページでは、遷移をおこなわずにコンテンツが切り替わるため、ユーザー体験(UX)の向上に繋がる
- 参考『SPA(Single Page Application)の意味を徹底解説します!』
データベース
正規化とは?
- データの重複をなくし整合的にデータを取り扱えるようにデータベースを設計すること
- 第1〜第5正規形があるが、実際使われるのは第3正規形までのことが多い
- 参考『第4回 データベースの正規化』
非正規形
- 正規化がまったく行われておらず、1行の中に複数の繰り返し項目が存在するようなテーブルのこと
第1正規形
- 同一行内での繰り返しをなくしたテーブルのこと
第2正規形
- 部分関数従属性をなくしたテーブルのこと
第3正規形
- 推移関数従属性をなくしたテーブルのこと
主キーと外部キーの違いは?
- 主キー:その値が表の行を一意的に識別する列または列セットのこと
- 外部キー:その値が別の表の主キーの値に対応している列または列セットのこと
- 参考『主キーと外部キー』
トランザクションとは?
- 複数のSQL文によるデータ更新を、1つの処理としてまとめてデータベースに反映させること
- 参考『第1回 トランザクションについて』
ロールバックとロールフォワードの違いは?
- ロールバック:トランザクション処理の途中で失敗したときにおこなう
- ロールフォワード:データベースが物理的に壊れたりした場合におこなう
- 参考『「ロールバック」と「ロールフォワード」の違い』
セキュリティ
SQLインジェクションとは?
- Webアプリケーションの脆弱性を意図的に利用し、断片的なSQL文をアプリケーションに不正に注入(インジェクション)し実行させる攻撃手法のこと
- 参考『SQLインジェクションとは?』
クロスサイトスクリプティング(XSS)とは?
- 悪意のあるスクリプトをWebサイトやWebアプリケーションに埋め込むことで、ユーザーのデータを盗んだり、不正な操作をおこなわせたりするサイバー攻撃のこと
- 参考『XSS(クロスサイトスクリプティング)とは?攻撃手法と5つの対策を紹介』
クロスサイトリクエストフォージェリ(CSRF)とは?
- ユーザーのログインしたセッションIDを悪用し、当人になりすまして不正リクエストを送信して、Webアプリケーション上で不正な操作をおこなうサイバー攻撃のこと
- 参考『必見!クロスサイトリクエストフォージェリ(CSRF)とは?仕組み・対策を解説』
ファイアウォールとは?
- ネットワークの出入り口に設置し、外部から内部への不正な侵入を遮断したり、内部から外部への不正なアクセスを禁止したりすることで、ネットワークを保護することを目的とした装置のこと
- 参考『ファイアウォールとは?必要性や種類、仕組み、機能も解説』
ハッシュ化とは?
- ハッシュ関数と呼ばれる特殊な計算方法によって、一見ランダムに見える別の値(ハッシュ値)にデータを変換する方法のこと
- 同じデータから得られるハッシュ値は常に同じ
- 正しいログインパスワードのハッシュ値と、入力されたパスワードのハッシュ値が同一であれば、入力されたパスワードが正しいものと判断する
- 参考『ハッシュ化とは?暗号化との違いや概要、利用シーンを詳しく解説!』
おわりに
何社か面接受けたけど、今のところ単語の意味を聞かれるような質問はないです…😂
今までにやってきたことを聞かれることが多い感じなので、スキルシートをしっかり書いた方が良さそう😂😂
参考
Discussion