본문 바로가기
Spring

3 Layer Architecture

by wjdtmdgjs 2024. 8. 15.
  • 메모장 프로젝트의 문제점
    • 현재 우리가 작성한 메모장 프로젝트는 Controller 클래스 하나로 모든 API를 처리하고 있습니다.
    • 현재는 API 수가 적고 기능이 단순하여 코드가 복잡해 보이지 않을 수 있지만 앞으로 기능이 추가되고 복잡해진다면 문제가 발생할 수 있습니다.
      • 한 개의 클래스에 너무 많은 양의 코드가 존재하기 때문에 코드를 이해하기 어렵습니다.
      • 현업에서는 코드의 추가 혹은 변경 요청이 계속 생길 수 있습니다.
      • 문제가 발생했는데 해당 Controller 클래스를 구현한 개발자가 퇴사한다면?👉 이러한 문제점들을 해결하기 위해 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리했습니다.
  • 👉 이러한 문제점들을 해결하기 위해 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리했습니다.
  • Spring의 3 Layer Architecture각 역할 별로 하는 일을 정리해 보겠습니다.
    1. Controller
      • 클라이언트의 요청을 받습니다.
      • 요청에 대한 로직 처리는 Service에게 전담합니다.
        • Request 데이터가 있다면 Service에 같이 전달합니다.
      • Service에서 처리 완료된 결과를 클라이언트에게 응답합니다.
    2. Service
      •  
      • 사용자의 요구사항을 처리 ('비즈니스 로직') 하는 실세 중에 실세입니다.
      • 따라서 현업에서는 서비스 코드가 계속 비대해지고 있습니다.
      • DB 저장 및 조회가 필요할 때는 Repository에게 요청합니다.
    3. Repository
      • DB 관리 (연결, 해제, 자원 관리) 합니다.
      • DB CRUD 작업을 처리합니다.

'Spring' 카테고리의 다른 글

웹개발 필수지식 정리  (1) 2024.08.28
JWT  (0) 2024.08.21
Annotation  (0) 2024.08.20
Spring MVC & 3 Layer (by김동현튜터님)  (0) 2024.08.19
Spring 메모리에서 비교하기  (0) 2024.08.15