アスペクト指向プログラミングとは?あすぺくとしこうぷろぐらみんぐ
アスペクト指向プログラミングは、ログ出力・トランザクション制御・認可チェックのように多数のモジュールに散らばる横断的関心事を、アスペクトとして本体コードから分離して記述し、指定した箇所へ自動的に織り込む(ウィービング)技法である。セキュリティ機能を一箇所に集約する手段として、午前IIの実装技法で問われる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
「全てのAPIの入口で認可を確認し、監査ログを残す」という要件を各メソッドに手で書くと、書き忘れが1か所あるだけで認可漏れになり、修正時には全メソッドを直す必要がある。共通処理を1つのアスペクトにまとめ、適用先を宣言で指定すれば、漏れなく一括で適用でき、変更も1か所で済む。支援士がセキュアプログラミングの設計レビューで指摘する場面につながる。
具体例
Spring FrameworkのSpring AOPやSpring Securityでは、@PreAuthorize("hasRole('ADMIN')") のようなアノテーションを付けるだけで、対象メソッドの実行前に認可チェックが織り込まれる。「業務ロジックのpublicメソッドの実行前後に処理時間と実行者を記録する」も、ポイントカットの宣言だけで全メソッドへ適用できる。
試験での引っ掛け
織り込まれた処理は本体コードに現れないため、ソースを読んだだけでは認可チェックの有無が分からず、レビューではアスペクトの適用範囲の定義まで追う必要がある。継承やデザインパターンによる共通化とは異なり、既存コードを変えずに外から挙動を追加する点で区別され、「継承の一種」とする選択肢は誤り。
関連用語
出典・参考
公式シラバスの4 開発技術 > 3. 実装・構築 > (2) ソフトウェアユニットの作成に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。