01 / UNDERSTAND
仕組みと使いどころ
依存関係には、アプリケーションが必要とするコード、バイナリ、ライブラリ、フレームワーク、ツールなどが含まれます。直接指定したものだけでなく、利用中の依存先がさらに必要とする推移的な依存関係もあります。クラス設計では、あるオブジェクトが処理を行うために利用する別のオブジェクトも依存関係です。依存先を直接生成すると、実装の交換、設定、テストが難しくなる場合があります。依存性注入では、依存先をコンテナに登録して利用側へ渡すことで、実装の変更や生成・破棄の管理をしやすくできます。一方、依存関係には既知の脆弱性や不具合が含まれる可能性があり、依存関係を把握するだけで安全性が保証されるわけではありません。
02 / IN PRACTICE
Dependencyの活用例
たとえば、こんな場面で
AIアプリで外部ライブラリやログ出力サービスを利用する場合、それらを依存関係として整理する活用が考えられます。直接利用するものに加え、そこから間接的に導入されるパッケージも確認すれば、更新や脆弱性対応の影響範囲を把握しやすくなります。
03 / GOOD TO KNOW
使うときのポイント
直接依存と推移的依存を区別し、名前、バージョン、取得元、既知の脆弱性を確認します。依存先の変更時は、それを利用する機能や他の依存関係への影響も確認してください。
参考資料
Dependency injection in ASP.NET Core (新しいタブで開きます)Best practices for a secure software supply chain (新しいタブで開きます)docs/content/code-security/concepts/supply-chain-security/supply-chain-security.md at main · github/docs (新しいタブで開きます)用語の説明や活用例に関連する参考資料です。
READ & LEARN
記事一覧を見る 用語を知ったら、活用を知る。
AI LABで、AIの動向や業務に取り入れるヒントを読む。
