프로그래밍 기록 Blog

[Spring] Controller, Service, Repository 본문

JAVA/Spring

[Spring] Controller, Service, Repository

shinwoong_BE 2025. 5. 17. 17:19

1. Controller

  • Spring의 4계층 구조에서 Presentation Layer(tier)를 담당하며, 주로 사용자의 요청을 받아 Service Layer에 처리를 위임하고 이에 대한 처리 결과를 View를 통해 반환하는 역할.
  • 사용자에게 UI, Client에게 Response를 반환하는 역할을 하는 모든 클래스를 포함.
  • Client로부터 request를 받고 response를 하는 모든 API를 포함.

Controller는 Model과 View에 대해서 알고 있다. Model 이나 View는 서로의 존재를 모르지만, 변경 사항이 있을 경우 외부로 알리고 수신한다. 이는 Controller가 이를 중재하고 있기 때문이다. 따라서 Controller는 Model이나 View에 대해 알고 있어야 한다.

결국, Controller를 통해 비즈니스 로직과 View, Model 사이의 징검다리 역할을 잘 수행하도록 하는 것이 MVC 패턴의 핵심이다.


2. Service

  • Spring의 4계층 구조에서 Application Layer(응용 계층)를 담당하며, 주로 서비스의 비즈니스 로직을 정의하는 Layer의 역할.
  • 애플리케이션의 Business Logic을 포함하며 사용자의 요청을 이해하기 위해 도메인 객체들이 협력하여 요청을 수행하도록 조정.
  • Service는 Controller와 Domain Layer 사이에 추상화 계층을 제공.
  • Controller가 요청된 작업을 수행하기 위해 호출할 수 있는 메소드 집합을 제공.
  • 사용자로부터 전달받은 데이터를 가공하여 처리, JpaRepository를 상속하는 객체를 가져와서 어떤 처리를 할 지 비즈니스 로직을 처리.

3. Repository

  • Repository란, Spring 4계층 구조에서 Infrastructure Layer(인프라 계층)을 담당하며, 주로 외부와의 통신(DB, 메세징 시스템)을 담당.
      - 해당 계층에서 얻어온 정보를 Application Layer 또는 Domain Layer에 전달하는 역할.
  • 특히 JPA를 활용하는 경우, JpaRepository를 exntends 하는 Repository 클래스를 만들면, 기본적인 CRUD를 제공.

'JAVA > Spring' 카테고리의 다른 글

[Spring] Spring Framework 특징과 구조  (0) 2025.05.17
Comments