Java/스프링부트와 AWS로 혼자 구현하는 웹 서비스

API

Frankie 2021. 6. 1. 13:40

API를 만들기 위해 총 3개의 클래스가 필요한데

 

·  Request 데이터를 받을 Dto

·  API 요청을 받을 Controller

·  트랜잭션, 도메인 기능 간의 순서를 보장하는 Service

 

Spring 웹 계층

·  Web Layer

- Controller, JSP/Freemarker 등의 뷰 템플릿 영역

- 이외에도 필터, 인터셉터, 컨트롤러 어드바이스 등 외부 요청과 응답에 대한 전반적인 영역

 

·  Service Layer

- @Service에 사용되는 서비스 영역

- 일반적으로 Controller와 Dao의 중간 영역에서 사용

- @Transactional이 사용되어야 하는 영역이기도 함

 

·  Repository Layer

- 데이터베이스와 같이 데이터 저장소에 접근하는 영역

 

·  Dtos

- Dtos는 Dto들의 영역이다.

 

·  Domain Model

- 도메인이라 불리는 개발 대상을 모든 사람이 동일한 관점에서 이해할 수 있고 공유할 수 있도록 단순화시킨 것을 도메인 모델이라고 한다.

- @Entity가 사용된 영역 역시 도메인 모델이라고 보면 된다.

- 다만, 무조건 데이터베이스의 테이블과 관계가 있어야만 하는 것은 아니다(VO처럼 값 객체들도 이 영역에 해당하기 때문)

 

* Dao(Data Access Object) : 데이터에 접근하는 객체

* Dto(Data Transfer Object) : 계층 간에 데이터 교환을 위한 객체

 

이 5가지 레이어에서 비즈니스 처리를 담당해야 하는 곳은 바로 Domain이다.

 

기존의 서비스로 처리하던 방식을 트랜잭션 스크립트라고 하는데 모든 로직이 서비스 클래스 내부에서 처리되므로 서비스 계층이 무의미하며, 객체란 단순히 데이터 덩어리 역할만 하게 된다.

 

반면, 도메인은 각 객체가 본인의 이벤트 처리를 하고, 서비스 메소드는 트랜잭션과 도메인 간의 순서만 보장해준다.

'Java > 스프링부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글

브라우저의 스코프  (0) 2021.06.12
머스테치  (0) 2021.06.07
JPA  (0) 2021.05.31
스프링 기초  (0) 2021.05.29
테스트 코드  (0) 2021.05.29