API를 만들기 위한 3개의 클래스
- Request 데이터를 받을 Dto
- API 요청을 받을 Controller
- 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service
- Service는 트랜잭션, 도메인 간 순서 보장의 역할
- 비지니스 로직 처리는 Domain
Spring웹 계층
Web Layer
- 흔히 사용하는 컨트롤러(@Controller)와 JSP/Freemarker 등의 뷰 템플릿 영역
- 이외에도 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 이야기
Service Layer
- @Service에 사용되는 서비스 영역
- 일반적으로 Controller와 Dao의 중간 영역에서 사용
- @Transactional이 사용되어야 하는 영역
Repository Layer
- Database와 같이 데이터 저장소에 접근하는 영역
- Dao(Data Access Object)같은 영역
Dtos
- Dto(Data Transfer Object)는 계층 간에 데이터 교환을 위한 객체를 이야기하며 Dtos는 이들의 영역
- 예를 들어 뷰 템플릿 엔진에서 사용될 객체나 Repository Layer에서 결과로 넘겨준 객체 등
Domain Model
- 도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화시킨 것
- ex) 택시 앱이라고 하면 배차, 탑승, 요금 등이 모두 도메인이 될 수 있음
- @Entity가 사용된 영역 역시 도메인 모델
- 무조건 데이터베이스의 테이블과 관계가 있어야만 하는 것은 아님
- VO처럼 값 객체들도 이 영역에 해당하기 때문
트랜잭션 스크립트
- 기존에 서비스로 처리하던 방식
'스프링 부트와 AWS' 카테고리의 다른 글
03장. 스프링 부트에서 JPA로 데이터베이스 다뤄보자04 (0) | 2022.11.14 |
---|---|
03장. 스프링 부트에서 JPA로 데이터베이스 다뤄보자03 (0) | 2022.11.14 |
03장. 스프링 부트에서 JPA로 데이터베이스 다뤄보자01 (0) | 2022.11.11 |
02장. 스프링 부트에서 테스트 코드를 작성하자 (0) | 2022.11.11 |
01장. 인텔리제이로 스프링 부트 시작하기 (0) | 2022.11.11 |
댓글