コンピューターサイエンスに関する記事一覧です。
スタックとヒープの違い、ガベージコレクション、スタックオーバーフローとメモリリークを解説します。
CDNによる静的コンテンツの配信と、Redisによるインメモリデータキャッシュの仕組みや違いを解説します。TTLやキャッシュ整合性、面接でよく聞かれる質問も紹介します。
データベースの性能最適化に使うインデックスの仕組みを学びます。すべてのデータに適用しない理由と、SELECTの高速化と書き込みコスト(Write Penalty)のトレードオフを説明します。
新卒エンジニアの技術面接で頻出するREST APIの要点を解説します。
ユースケースでユーザーの要求を分析して整理します。アクター、ユースケース、シナリオの意味と、基本フロー、代替フロー、例外フローを含む仕様書の書き方を例とともに説明します。
形式的・非形式的な分析の違いを理解し、インタビュー、アンケート、ワークショップ、観察などの要件分析手法と、要件トレーサビリティマトリクスの活用法を紹介します。
ソフトウェア要求仕様書(SRS)の目的と構成を学びます。機能要件と非機能要件の定義、作成の指針、よくある誤りを例とともに説明します。
モデル、ビュー、コントローラーの役割と連携の流れを、Javaの例とともに説明します。
ソフトウェアライフサイクルの基本からウォーターフォール、反復、アジャイルの特徴と選び方まで比較して解説します。
オブジェクト指向設計の中核となるSOLID原則(SRP、OCP、LSP、ISP、DIP)を学びます。各原則の意味と重要性をJavaの例で理解し、実際のコードに適用して、保守しやすく柔軟なソフトウェアを作る方法を説明します。
UMLユースケース図のアクター、ユースケース、システム境界と、include・extend関係の使い分けを例とともに解説します。
ソフトウェア開発で要件が変わり続ける理由を理解し、変化を効果的に受け入れて管理するための柔軟な開発戦略を紹介します。変更管理プロセスや便利なツールを通じて、変化に強い開発チームを目指します。
初期アイデアと機能要件の違い、ユーザー調査、プロトタイプと文書化の役割を解説します。
代表的なアジャイル手法と導入事例を成功・失敗の両面から紹介します。
反復型開発とアジャイルの特徴、進化的プロトタイピング、アジャイル宣言の原則を解説します。
プロトタイピングの目的や種類、メリット・デメリット、活用する段階とツールを解説します。
UMLシーケンス図のライフライン、メッセージ、活性区間、制御フレームを解説します。オンライン書籍注文の例を使い、時間の流れに沿った相互作用の描き方を紹介します。
UMLクラス図のクラス、属性、メソッドと、継承・関連・集約・コンポジション・依存の関係をJavaの例とともに解説します。
ソフトウェア工学における検証と妥当性確認を説明します。
ユニットテスト、テストスイート、回帰テスト、JUnitの基本をコード例とともに解説します。
設計からコードへ対応付ける方法を説明します。
オブジェクト間の可視性を考慮した設計を説明します。
GRASPパターンによるオブジェクト設計の例を紹介します。
オブジェクト指向設計で責務を割り当てるためのGRASPパターンを説明します。
ソフトウェア工学におけるUMLクラス図を説明します。
UML相互作用図の基本を紹介します。シーケンス図とコミュニケーション図を比較し、リンク、メッセージ、生成、反復、静的・多態的呼び出し、同期・非同期の表現を解説します。
ソフトウェア工学におけるオブジェクト単位の設計を説明します。
ソフトウェア工学における論理アーキテクチャの設計を説明します。
OS学習20日目の最終回です。これまでの重要概念を一つの流れとして振り返り、身近なOSを理解する視点を整理します。
分散システムの利点、ネットワーク構造、通信方式、設計上の考慮点、分散ファイルシステム(DFS)を解説します。
仮想マシンは、OSを効率よく分離し実行する技術です。基本概念から構造、長所と短所まで、例を使って整理します。
OSはシステム資源を安全に守るため、さまざまな保護メカニズムを使います。ドメイン、アクセス制御、セキュリティポリシーを例とともに整理します。
OSのセキュリティは、システムとユーザーデータを守ります。脅威の種類から暗号化、認証、アプリのセキュリティまで、例を交えて説明します。
マウントやパーティション、NFSによるファイル共有、VFS、キャッシュと一貫性など、OSのファイルシステム構造を例とともに解説します。
ファイルシステムの実装方式を構造や割り当て、復旧の例とともに解説します。
ファイルの保存方法やアクセス方法を定めるファイルシステムインターフェースを、ディレクトリ構造、アクセス方式、保護技法などの例とともに解説します。
OSの入出力システムは、ハードウェアとユーザーをつなぎます。入出力インターフェース、カーネルのサブシステム、要求がハードウェアの操作に変換される流れを解説します。
仮想メモリは、物理メモリより大きなアドレス空間を提供する仕組みです。デマンドページング、ページ置換、コピーオンライトを例とともに学びます。
ページテーブルによる仮想アドレス変換、多段ページテーブル、TLBキャッシュ、スワッピングを例とともに解説します。
メインメモリの割り当て方式やページテーブルの仕組みを例とともに解説します。
複数のプロセスが互いのリソースを待って止まるデッドロックを、システムモデルから予防と回復まで、技術面接でよく出る概念と例を交えて説明します。
生産者・消費者、食事する哲学者、スピンロック、リーダー・ライターロックなど、同期問題を具体例で解説します。
同期ツールのミューテックス、セマフォ、モニターを例とともに解説します。
CPUスケジューリングの評価基準とFCFS、SJF、優先度方式、ラウンドロビンなどの主要アルゴリズム、マルチプロセッサやリアルタイム環境での方式を解説します。
プロセス内の実行単位であるスレッドを、並行性、マルチコア、スレッドモデル、同期の課題とともに解説します。
OSの基本単位であるプロセスの仕組みを、スケジューリング方式やプロセス間通信(IPC)の例とともに解説します。
OSのサービス、システムコール、リンカー・ローダー、カーネル設計、起動とデバッグを解説します。
OSはコンピューターのリソースを効率よく管理し、ユーザーとハードウェアをつなぐソフトウェアです。定義と役割から、構造、リソース管理、セキュリティ、仮想化までの基本を説明します。
useEffectとuseLayoutEffectの違い、useRefのDOM参照と値の保持、useReducer、カスタムフックでのロジック再利用を学びます。
React 17との違い、マイクロタスク、flushSync、startTransitionから、React 18の自動バッチ処理と並行性を学びます。
フックの呼び出し順、連結リスト、Update Queue、関数型更新、バッチ処理、遅延初期化からuseStateとsetStateの内部を理解します。
TCPの輻輳制御を説明します。
トランスポート層における輻輳制御の原則を説明します。
TCPの仕組み、シーケンス番号、再送、RTT、フロー制御、3ウェイハンドシェイクと接続終了を解説します。
ネットワーク管理とSNMPについて説明します。
ICMP(インターネット制御メッセージプロトコル)を説明します。
インターネットのAS間ルーティングとBGPを説明します。
インターネットにおけるAS内ルーティングとOSPFを説明します。
リンクステート方式とディスタンスベクター方式を中心に、ルーティングプロトコルを説明します。
制御プレーンの概要を説明します。
IPデータグラム、IPv4アドレス、サブネット、NAT、IPv6の基本構造と仕組みを解説します。
ルーターの内部に何があるのかを説明します。
ネットワーク層の役割と主要な機能を説明します。
ALOHAからCSMA/CAまで、共有チャネルでの送信競合や衝突を管理するプロトコルの仕組みを解説します。
無線移動通信における競合のないアクセス方式と、無線リンクの複信方式を説明します。
無線移動通信のMACにおける多重アクセスを説明します。
無線移動通信のMAC層と多重化に関連するコンピューター通信の内容です。
信号空間、内積、ユークリッド距離、正規直交基底、BPSKとQAMの表現を解説します。
線形システムと各種変調方式、信号帯域幅、復調受信機の役割を整理します。
FEC、ブロック符号、畳み込み符号、インターリービング、シャノン限界の基礎を数式と例で解説します。
無線移動通信における情報源符号化を説明します。
無線移動通信に関連する情報源符号化と通信路符号化の概要です。
データベースの論理設計、スキーマ、キー、整合性制約、関係代数、正規化、システムカタログ、インデックスの要点を整理します。
線形・非線形データ構造、ソートと探索、ハッシュ、ビルド自動化、構成管理、テスト手法を一覧と例で解説します。
ソフトウェア開発ライフサイクル、要求分析、UML、UI、アーキテクチャ、オブジェクト指向、設計パターンなど、情報処理技術者試験のソフトウェア設計分野を整理します。
メッセージの完全性を保証するメッセージ認証コードを説明します。
暗号で使われるハッシュ関数について説明します。
乗法表記と加法表記の対応から、楕円曲線、有限体、点の加算・2倍算、ECDSAとElGamalの仕組みを数式と例で解説します。
RSA署名とPSS、ElGamal署名、DSAの鍵生成・署名・検証の仕組みを数式とともに解説します。
デジタル署名の定義について説明します。
公開鍵暗号で使われるElGamal暗号について説明します。
公開鍵暗号で使われるDiffie–Hellman鍵交換アルゴリズムを説明します。
群と巡回群の基礎から、公開鍵暗号の安全性を支える離散対数問題(DLP)まで、定義と具体例を使って解説します。
RSAの鍵生成、暗号化・復号、正当性、安全性とOAEPを数式と例で解説します。
RSAの鍵生成、モジュラー累乗、ユークリッド互除法、オイラーの定理、フェルマー検査とミラー・ラビン検査を解説します。
公開鍵暗号について説明します。
共通鍵暗号の一種であるストリーム暗号について説明します。
AESの構造、有限体演算、S-Boxや各ラウンド変換、鍵拡張を解説します。
データ暗号化標準であるDESについて説明します。
ブロック暗号の構造と安全性を説明します。
共通鍵暗号の種類を説明します。
古典暗号の方式と攻撃方法を数式とともに解説します。
暗号学の基本的な概念を説明します。
情報セキュリティと暗号学の概要を扱います。