Spring - 웹 계층

유재학·2022년 11월 8일
0

스프링 웹 계층

Presentation Layer

  • 브라우저 상의 웹 클라이언트 요청 및 처리를 담당하는 레이어다.
  • 사용자 요청에 맞는 @Controller를 호출한다.
  • 사용자 요청 객체에 대한 유효성 처리를 한다.
  • Business Layer, Persistence Layer에서 발생하는 예외처리를 한다.
  • Controller, View 포함

Business Layer

  • Service Layer
  • 실제 비지니스 로직을 수행하는 컴포넌트
  • Presentation Layer에서 들어오는 사용자 요청 데이터가 아니라 다른 계층을 통해 들어왔거나 Controller를 직접적으로 거치지 않는 요청일 경우 해당 계층에서 처리
  • 외부 API사용 시 해당 계층에서 사용
  • 공통적으로 사용해야하는 작업 처리
  • 컨트롤러에서 요청을 보내면 DAO를 이용해 실제 비즈니스 로직 수행
  • DAO에서 받은 데이터 Entity의 유효성을 확인하고 DTO로 변환
  • Persistence Layer와 Presentation Layer가 직접적으로 통신하지 않게 함
  • Service 인터페이스와 @Service 클래스

Persistence Layer

  • Repository Layer/Data Access Layer
  • DB에 값을 전달하거나 가져오기 위해 SQL질의 및 수행 결과를 전달
  • DB에 데이터를 CRUD(Create, Read, Update, Delete)하는 계층
  • DAO인터페이스와 @Repository 클래스

계층을 나누는 이유?

  • 관심 분리를 통해 대상 계층에 집중이 가능하다.
  • 계층을 나누면서 모듈화가 되기 때문에 유지보수, 확장성이 증가한다.
  • 계층별 테스트가 쉬워진다.

계층은 어떻게 나누는게 좋은가?

  • 도메인을 분리하고 각 도메인 안에서 Presentation - Buiseness - Persistence로 나누는 것이 좋다.
profile
github : https://github.com/kiaeh2323 , email : kiaeh9269@gmail.com

0개의 댓글