🐈
Controller・Service・Repositoryで理解する三層アーキテクチャ
なぜ 3 層に分けるのか?
Web アプリケーションでは、処理の責務を分けて整理することが重要です。
その代表的な構成が「3 層アーキテクチャ(Three-Tier Architecture)」です。
コードの見通しを良くし、保守性や再利用性を高める目的で使われます。
3 層アーキテクチャの構造
- プレゼンテーション層:画面からの入出力を管理
- ビジネスロジック層:ビジネスルール・ビジネスロジックといったアプリケーション固有の概念を管理
- データアクセス層:データの保存や取得を管理
各層の役割と具体例
プレゼンテーション層(@Controller)
- ユーザーの入力を受け取り、画面や API レスポンスとして出力する
- 例:フォーム送信の処理、API のエンドポイント定義
ビジネスロジック層(@Service)
- アプリケーション固有の処理(業務ルール)を実行する
- 例:合計金額の計算、在庫チェック、認証ロジック
データアクセス層(@Repository)
- データベースや外部システムとのやり取りを担当
- 例:DB からデータを検索・保存する SQL の実行
メリットとデメリット
メリット
- 責務が明確で保守しやすい
- テストや機能追加がしやすい
- 再利用性が高い
デメリット
- 小規模アプリにはやや冗長
- 層間の依存が複雑化すると理解が難しくなる
Discussion