JavaでWebアプリを作る時に、フロント、バックロジック、DBアクセスみたいなレイヤー分割をしているものが多いのですが、
レイヤーを意識して作るとどのような利点があるのでしょうか。

例えば、バックロジックからDBアクセスを分離すると変更に強くなる、というのを書籍で読みましたが、
開発が始まっているのに途中でDBが変わるとか考えにくいし、本当に変わったらロジック側にもなんらかの影響は避けられないんじゃないかなと思ったりして良くわかりませんでした。