사용 범위
- Service Layer에서 DTO를 return한다
- 도메인을 보호하기 위해서
- 도메인이 변경됐을 때 Controller에 미치는 영향을 줄이기 위해서
- Controller가 도메인에 의존하지 않게 하기 위해서
- DTO - Domain 변환은 Mapper class가 수행한다
- `MapStruct` 라이브러리를 이용해서 편리하게 구현할 수 있다
목적
- 많은 매개변수를 일괄 처리
- 원격 작업을 할 때 네트워크 오버헤드 감소
- 직렬화 로직 캡슐화
- 직렬화 로직을 DTO 클래스로 모아서 변경 지점을 하나로 만듦
- Domain 모델을 Presentational 모델과 분리하여 두 모델을 독립적으로 변경할 수 있게 한다
참고 자료
https://hudi.blog/data-transfer-object/
DTO의 개념과 사용범위
DTO는 우테코 과정 중 정말 많이 들어봤고, 나름 사용도 많이 했지만 이상하게 바람직하게 사용하고 있다는 확신이 들지 않는 개념이다. DTO에 대한 내용은 항상 새롭게 알아가는데, 이러다간 DTO
hudi.blog
https://www.baeldung.com/java-dto-pattern
'Spring Framework' 카테고리의 다른 글
[Spring][스크랩] nested transaction의 동작 방식 (0) | 2024.08.02 |
---|---|
[Spring] FK(id)만 이용해서 관계 있는 엔티티를 생성하는 법 - 프록시 객체 (0) | 2024.07.12 |
객체 지향 설계와 스프링 프레임워크 (0) | 2024.05.24 |
좋은 객체 지향 프로그래밍이란? - 다형성 (0) | 2024.05.23 |
[Spring] 동시에 발생한 요청을 처리하는 방법 - Multithreading (0) | 2024.04.26 |