静的解析(Static Analysis)とは

STATIC ANALYSIS
読み: セイテキカイセキ

静的解析(Static Analysis)とは、静的解析とは、プログラムを実行せずにソースコードそのものを機械的にスキャン

読み: セイテキカイセキ

静的解析とは、プログラムを実行せずにソースコードそのものを機械的にスキャンし、バグやセキュリティ上の問題、コーディング規約違反などを検出する手法。コードを「動かす前にチェックする」ことで、本番環境に問題が入り込むリスクを事前に減らせる。

かんたんに言うと

静的解析とは、書いたプログラムを実際に動かさずに文法チェックや危険なコードの発見を自動で行う仕組みのこと。文章の校正ツールに近い役割を持つ。

コードを動かす前にバグを潰す静的解析と動的解析の使い分け

静的解析の対になる概念が「動的解析」になる。動的解析はプログラムを実際に動かしながら挙動を監視する手法で、実行時にしか発生しないメモリリークや性能劣化を検出できる。
一方、静的解析はコードを書いた直後、コンパイルやデプロイの前に実行できるため、問題の発見が早い。開発の初期段階で自動的にコードを検査し、問題があればその場で修正に回すワークフローが一般的になっている。

AI生成コードの品質管理に使われる場面

LLMによるコード生成が日常化するにつれ、AIが書いたコードの品質をどう担保するかが課題になっている。LLMは文法的に正しいコードを出力するものの、セキュリティの考慮やエッジケースの処理が不十分なケースがある。
ここで静的解析ツールをCI/CDパイプラインに組み込むことで、AIが生成したコードを人間がレビューする前に機械的なフィルターにかけられる。コードレビューの負荷を下げつつ、品質基準を維持する仕組みとして活用されている。

セキュリティ診断との関係

セキュリティ診断の文脈では、静的解析はSAST(Static Application Security Testing)と呼ばれる。SQLインジェクションクロスサイトスクリプティングなど、既知の脆弱性パターンに該当するコードを自動で検出する用途で使われている。
ただし、静的解析が検出できるのはコードのパターンマッチに限られる。ビジネスロジック上の設計ミスや、複数コンポーネント間の連携上の問題は検出範囲の外になるため、動的解析や手動レビューと組み合わせる運用が求められる。

当社の見解

当社はOpenAI APIを完全廃止し、EmbeddingLLMも全てローカルで稼働させている(2026年4月時点)。これにより月額のAPI費用がゼロになっただけでなく、機密情報や顧客データを外部に送信せずにAI処理できるようになった。クライアントのログデータをマスキングなしでそのまま分析に回せるのは、ローカルLLMだからこそ実現できる。2026年4月にはOllama常駐実行(CPU 25%、GPU 30%を常時占有)を廃止し、FastEmbed(ONNX Runtime)による非常駐型推論に移行。処理が必要な瞬間だけプロセスを起動し、完了後に即座に終了する設計で、アイドル時のリソース消費をゼロにした。あえて一般的なデスクトップPC環境で複数のローカルLLMを実機検証した経験から言えることは、ベンチマークスコアと実務での使い勝手、そして常駐時のリソース消費は全て別の指標だということだ。

同じ失敗を二度としないAIエージェント

今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。

当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。

古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。

相談する