앞에서 작성한 메모장 프로젝트는 Controller 클래스 하나로 모든 API를 하고 있습니다. 현재 API 수가 적고 기능이 단순하여 코드가 복잡해 보이지 않을 수 있지만 앞으로 기능이 추가되고 복잡해진다면 문제가 발생할 수 있습니다.
Spring의 3 Layer Architecture
Controller가 가중되는 것을 방지하고자 처리 과정을 크게 Controller, Service, Repository 3개로 분리했습니다.
1. Controller
- 클라이언트의 요청을 받음
- 요청에 대한 로직 처리는 Service에게 전담
- Request 데이터가 있다면 Service에 같이 전달
- Service에서 처리 완료된 결과를 클라이언트에게 응답
2. Service
- 사용자의 요구사항을 처리(비즈니스 로직) 하는 실세 중에 실세
- DB 저장 및 조회가 필요할 때는 Repository에게 요청
3. Repository
- DB 관리 (연결, 해제, 자원 관리)
- DB CRUD 작업을 처리
'Spring' 카테고리의 다른 글
[Spring] a foreign key constraint fails 에러 발생 (0) | 2024.10.17 |
---|---|
[Spring] Ambiguous handler methods mapped 에러 해결 (1) | 2024.10.04 |
[Spring] JDBC란 무엇이고 어떻게 사용할까? (1) | 2024.09.30 |
[Spring] DTO(Data Transfer Object) (0) | 2024.09.30 |
[Spring] HTTP 데이터를 객체로 처리하는 방법 (0) | 2024.09.27 |