Controller, Service, Repository

yanju·2022년 11월 29일
0
post-thumbnail

스프링 웹 계층

스프링 프로젝트를 할 때 다음과 같이 계층을 나눌 수 있다.

스프링 계층은 크게 3개로 나눌 수 있다

  • Presentation Layer
  • Business Layer
  • Data Access Layer

프레젠테이션 계층

브라우저상의 웹 클라이언트의 요청 및 응답을 처리한다.

Service Layer, Data Access Layer에서 발생하는 Exception 처리

@Controller 클래스가 이 계층에 속한다.

Controller

컨트롤러는 사용자의 요청을 처리한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 한다.

사용자의 요청이 진입하는 지점이며 요청에 따라 어떤 처리를 할 지 결정을 해 Service에 넘겨준다.

서비스 계층

애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증을 한다.

트랜잭션 관리를 한다.

프레젠테이션 계층과 데이터 액세스 계층 사이를 연결하는 역할로서 두 계층이 직접적으로 통신하지 않게 한다.

@Service어노테이션을 사용하여 작성된 Service 구현 클래스가 이 계층에 속한다.

Service

Service는 비즈니스 로직을 수행한다.

알맞은 정보를 가공하고 DB에 접근하여 결과값을 받아오는 등의 행위를 통해 비즈니스 문제를 해결한다.

서비스는 다른 서비스를 의존하기도 한다.

데이터 액세스 계층

ORM(Mybatis, Hibernate)등을 사용하는 계층

DAO 인터페이스와 @Repository 어노테이션을 사용하여 작성된 DAO 구현 클래스가 이 계층에 속한다.

Repository

Entity에 의해 생성된 DB에 접근하는 메서드를 사용하기 위한 인터페이스다.

@Entity 어노테이션으로 DB 구조를 만들었다면 JpaRepository를 통해 CRUD를 할 수 있다.

public interface MemoRepository extends JpaRepository<Product, Long> {
}

0개의 댓글