Spring/이론

Spring Layered Architecture

JuNo_12 2025. 5. 9. 19:10

기존에 사용하던 MVC 패턴에는 문제점이 있는데, 

Controller는 역할이 너무 많다는 문제점이다.

  1. 요청에 대한 처리
  2. 예외처리
  3. View Template 응답 or Data 응답
  4. 비지니스 로직 처리
  5. DB 상호작용

코드 재사용성을 위해 여러 Layer로 나누어 역할을 분담해주는 구조가 Layered Architecture 이다.

  • Presentation Layer
  • 클라이언트의 요청을 받는 역할을 수행한다.
  • 요청에 대한 처리를 Service Layer에 전달한다.
  • Service에서 처리 완료된 결과를 클라이언트에 응답한다.
  • 사용하는 Annotation : @Controller, @RestController

 

  • Business Layer(Service Layer)
  • 사용자의 요청 사항을 처리한다.
  • DB와 상호작용이 필요한 경우, Repository Layer에게 요청한다.
  • 사용하는 Annotation: @Service

 

  • Data Access Layer(Repository Layer)
  • DB와 상호작용을 수행한다.
    • Connection 연결, 해제
    • CRUD 작업 처리
  • 사용하는 Annotation: @Repository

 

  • DTO (Data Transfer Object)
  • 계층간 데이터 전달을 위해 사용된다.
  • 요청 데이터를 처리하는 객체는 일반적으로 RequestDto로 명명한다.
  • 응답 데이터를 처리하는 객체는 일반적으로 ResponseDto로 명명한다.