**DTO(Data Transfer Object)**란 데이터를 전달하기 위한 단순한 객체를 말합니다. 이어지는 요구사항을 해결하려다보면, 도메인 모델의 일부 정보만 포함하거나, 여러 도메인 모델의 정보를 합친 데이터 모델이 필요한 경우가 생길거예요. 이런 경우에 도메인 모델을 특정 상황만을 위해 수정하기 보다는 DTO를 정의해서 해결하는 것이 바람직합니다. 뿐만 아니라 메소드 파라미터가 많아지거나, 그룹핑하고 싶을 때에도 유용할 수 있어요.
DTO를 정의할 때에는 class 대신 Record를 활용하면 더 편리합니다.
public record MyDto(
UUID id,
String prop1,
Long prop2
) {}
public record MyCreateRequest(
String param1,
Long param2
) {}
public MyDto create(MyCreateRequest request) {...}