WEB/Spring
DTO(Data Transfer Object)
hwahaha
2024. 2. 1. 19:44
서비스가 요청을 처리 후 클라이언트에게 반환할 때 Model 자체를 그대로 리턴하는 경우는 드물고 보통 DTO로 변환해 리턴한다.
이유는 다음과 같다
1. 비지니스 로직을 캡슐화 하기 위함
Model은 DB 테이블 구조와 매우 유사하다.
모델이 갖고 있는 필드는 테이블의 스키마와 비슷할 확률이 높다.
외부에서 DB의 스키마를 아는 것을 원치 않을 경우가 대다수이다.
이때 DTO를 사용하면 외부에 서비스 내부의 로직, DB구조 등을 숨길 수 있음
2. 클라이언트가 필요한 정보를 모델이 전부 포함하지 않는 경우가 많다.
만약 서비스 실행 도중 에러가 발생하면 이 메세지를 어디에 포함해야하는가 ,모델은 서비스 로직과는 관련이 없기 때문에 DTO에 에러 메세지를 포함한다.