본문 바로가기
Spring

[Spring] 3 Layer Architecture

by worldcenter 2024. 10. 2.

 

앞에서 작성한 메모장 프로젝트는 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 작업을 처리