🐈

Controller・Service・Repositoryで理解する三層アーキテクチャ

に公開

なぜ 3 層に分けるのか?

Web アプリケーションでは、処理の責務を分けて整理することが重要です。
その代表的な構成が「3 層アーキテクチャ(Three-Tier Architecture)」です。
コードの見通しを良くし、保守性や再利用性を高める目的で使われます。

3 層アーキテクチャの構造

  • プレゼンテーション層:画面からの入出力を管理
  • ビジネスロジック層:ビジネスルール・ビジネスロジックといったアプリケーション固有の概念を管理
  • データアクセス層:データの保存や取得を管理
    3層アーキテクチャの構造図

各層の役割と具体例

プレゼンテーション層(@Controller)

  • ユーザーの入力を受け取り、画面や API レスポンスとして出力する
  • 例:フォーム送信の処理、API のエンドポイント定義

ビジネスロジック層(@Service)

  • アプリケーション固有の処理(業務ルール)を実行する
  • 例:合計金額の計算、在庫チェック、認証ロジック

データアクセス層(@Repository)

  • データベースや外部システムとのやり取りを担当
  • 例:DB からデータを検索・保存する SQL の実行

メリットとデメリット

メリット

  • 責務が明確で保守しやすい
  • テストや機能追加がしやすい
  • 再利用性が高い

デメリット

  • 小規模アプリにはやや冗長
  • 層間の依存が複雑化すると理解が難しくなる

Discussion