상세 컨텐츠

본문 제목

Spring web layer

개인 공부/Spring-boot,Java

by 카페코더 2020. 6. 23. 17:10

본문

반응형

스프링 웹 계층에 대한 설명

Spring web layer

Web Layer

  • 흔히 사용하는 컨트롤러와, JSP / Freemarker 등의 뷰 템플릿 영역이다.
  • 필터, 인터셉터, 컨트롤러, 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 의미한다.

 

Service Layer

  • @Service에 사용되는 서비스 영역이다.
  • 일반적으로 Controller와 Dao의 중간 영역에서 사용된다.
  • @Transactional이 사용되어야 하는 영역이기도 하다.

 

Repository Layer

  • Database와 같이 데이터 저장소에 접근하는 영역이다.
  • DAO(Data Access Object) 영역으로 이해해도 좋다.

 

Dtos

  • Dto(Data Transfer Object)는 계층 간에 데이터 교환을 위한 객체를 이야기하며, Dtos는 이들의 영역을 의미한다.
  • 뷰 템플릿 엔진에서 사용될 객체나 Repository Layer에서 결과로 넘겨준 객체 등이 이들을 이야기한다.

 

Domain Model

  • 도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화시킨 것을 도메인 모델이라고 한다.
  • 만약 택시 앱이라고 하면 배차, 탑승, 요금 등이 모두 도메인이 될 수 있다.
  • @Entity가 사용된 영역 역시 도메인 모델이라고 이해해도 좋다.
  • 하지만, 무조건 데이터베이스의 테이블과 관계가 있어야만 하는것은 아니다.
  • VO처럼 값 객체들도 이 영역에 해당하기 때문이다.

 

+ 추가

Web, Service, Repository, Dto, Domain 이 5가지 레이어에서 비지니스 처리를 담당해야 할 곳은 어디인가?

답 : Domain

기존에 도메인이 아닌, 서비스로 처리하던 방식을 트랜잭션 스크립트라 한다.

이 경우, 모든 로직이 서비스 클래스 내부에서 처리되는데, 이렇게 되면 서비스 계층이 무의미하며, 객체란 단순히 데이터 덩어리 역할만 하게된다.

반면, 도메인 모델에서 처리할 경우 서비스 메소드는 트랜잭션과 도메인 간의 순서만 보장한다.

반응형

'개인 공부 > Spring-boot,Java' 카테고리의 다른 글

JPA Auditing  (0) 2020.06.23
LocalDate와 LocalDateTime  (0) 2020.06.23
Entity 클래스  (0) 2020.06.22
lombok을 사용하는 이유  (0) 2020.06.22
Gradle 의존성 정리  (0) 2020.06.22

관련글 더보기

GitHub 댓글

댓글 영역