フレームワーク
ある言語をもとアプリ開発を作りやすくする土台
アプリ開発に必要な『土台』と『ルール』をセットにしたもの
例:Ruby on Rails は、 Rubyのフレームワーク
ライブラリー
誰かが使いやすくした詰め合わせパック
例 gem ※具体的にgem 'devise'
アクティブレコードメソッド
Rubyの書き方でデータベース(DB)を自由に操作するための、Rails専用のコマンド集
データベースとアプリケーションのやりとりを動きを行うメソッドの総称
※Save ※コントローラー
ORM
「プログラミング言語」と「データベース」の仲介役をしてくれる仕組み
例 ルビーのORMはアクティブレコード
※アクティブレコード:データベースの操作をRubyの書き方で操作できる仕組み
(左)生のSQLに変換した場合の例 (右)ActiveRecord
※データベースに対して直接命令

ORMを使う理由
■「SQLインジェクション」という脆弱性
生のSQLを自分で組み立てて書くと、悪意のあるユーザーが入力フォームに変な文字を入れてデータベースを破壊したり、情報を盗んだりする隙を与えやすくなります。ActiveRecordメソッドを使えば、Railsが自動でその隙を埋めて(サニタイズして)くれます。
■メンテナンス性(読みやすさ)
VSコードの中にRubyとSQLが混ざっていると、後から見た時に「何をしているコードか」を理解するのに時間がかかります。
■データベースへの依存
直接SQLを書きすぎると、将来「MySQLからPostgreSQLに変えよう」となった時に、全てのSQLを書き直すハメになります。





