스프링 웹 계층구조

스프링부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 프로젝트를 실습하던중, 정리해보면 좋을 부분인것 같아서 정리해보았다.

  • Web Layer
    • 컨트롤러와 뷰 템플릿 영역
    • 외부 요청과 응답에 관한 전반적인 영역
      • @Filter, 인터셉터, @ControllerAdvice
  • Service Layer
    • @Service 에 사용되는 서비스 영역
    • 일반적으로 Controller와 Dao의 중간 영역에서 사용
    • @Transactional이 사용되어야 하는 영역
  • Repository Layer
    • DB에 접근하는 영역
    • DAO의 영역에 해당
  • Dtos
    • Data Transfter Object
    • 계층간에 데이터 교환을 위한 객체
  • Domain Model
    • 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고, 공유할 수 있도록 단순화 시킨 것.
    • 배달 앱이라고 가정하면, 주문, 결제, 배달상태 등이 될 수 있다.
    • @Entity가 사용된 영역이 도메인 모델
    • 항상 DB 테이블과 관계있는 영역은 아님
    • VO처럼 값 객체들도 이 영역에 해당될 수 있음.
    • 비즈니스 처리를 담당해야하는 곳이기도 함.

출처 : 이동욱 - 스프링부트와 AWS로 혼자 구현하는 웹 서비스