Spring/이론
Spring Layered Architecture
JuNo_12
2025. 5. 9. 19:10
기존에 사용하던 MVC 패턴에는 문제점이 있는데,
Controller는 역할이 너무 많다는 문제점이다.
- 요청에 대한 처리
- 예외처리
- View Template 응답 or Data 응답
- 비지니스 로직 처리
- 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로 명명한다.