フレームワークとは - Shinichi0713/security_specialist GitHub Wiki

フレームワーク(framework)とは、ソフトウェア開発においてアプリケーションの土台や枠組みを提供するものです。
開発者が一からすべての機能を作るのではなく、よく使われる機能や構造があらかじめ用意されており、その上に自分のアプリケーション固有の処理や機能を追加していくことができます。

フレームワークの特徴

  • 土台・枠組み:アプリケーション全体の基本構造や流れを決めている
  • 再利用性:よく使う機能(例:データベース接続、画面表示、認証など)が組み込まれている
  • 効率化:開発者は独自のロジックや特徴的な部分に集中できる
  • ルールや制約:フレームワークが決めた書き方や構造に従う必要がある

  • Webアプリ開発
    • Python: Django、Flask
    • JavaScript: React、Vue.js(これらは「ライブラリ」と呼ばれることもありますが、枠組みを提供するものはフレームワーク的です)
  • デスクトップアプリ
    • Tkinter(PythonのGUIフレームワーク)
  • モバイルアプリ
    • Flutter、React Native

フレームワークとライブラリの違い

  • ライブラリ:特定の機能を「呼び出して使う」もの。自由度が高い。
  • フレームワーク:アプリ全体の流れや構造を「決めてくれる」もの。
    「フレームワークの流れに自分のコードを組み込む」イメージです(これを「ハリウッド原則(Don't call us, we'll call you)」と呼ぶこともあります)。

まとめ
フレームワークとは、アプリケーション開発のための「土台」や「枠組み」を提供し、開発効率を高めてくれる仕組みです。