Spring Layer 구조

황승현·2023년 12월 18일
0

스프링 강의 정리

목록 보기
3/8

Spring Layer

계층(Layer)을 나누는 이유

  • 관심사의 분리(Seperation Of Concerns) 때문

    • 코드의 재사용성, 유지보수성을 높일 수 있다.
  • 계층을 나누지 않으면 작성한 코드에 뭔가 문제가 있어서 수정을 해야할 때, 전체를 수정해야하거나 어디를 수정해야할지 모를 수 있다.

계층 구조

  • Layer를 나누는 방식은 여러가지가 있지만, 일반적으론 Web Layer, Service Layer, Repository Layer로 구성한다.

    • Web Layer가 Service Layer를 호출하고, 다시 Service Layer에서 Repository Layer를 호출하게 되는 구조

Web Layer

  • Application의 최상위 Layer

  • Client의 요청(Request)을 받고, 응답(Response)을 주는 역할 (i.e. Controllers)

  • 하위 Layer에서 발생한 예외들을 처리하여 적절한 응답(Response)을 줌 (i.e. Exception Handlers)

  • 인증과 인가 처리를 담당 (i.e. Filters)

Service Layer

  • Web Layer 하위에 존재하는 Layer

  • 트랜잭션(Transaction) 경계의 역할

  • Application Service와 Infrastructure Service로 나뉜다.

Application Service

  • 요청의 처리에 대한 주요 비즈니스 로직을 담당

  • 최종적으로 응답을 WebLayer에 넘겨주는 역할

Infrastructure Service

  • 데이터 베이스, 이메일 서버 같은 외부 서비스와 통신하는 역할.

  • Application Service에서 Infrastructure Service를 사용

Repository Layer

  • 가장 하위에 존재하는 Layer

  • 데이터베이스와 통신하는 역할 담당

    • DB에 추가하기, DB에서 가져오기, DB에서 삭제하기, DB에서 수정하기 등

0개의 댓글