ellyheetov / troubleshooting

공부 과정 중 발생하는 모든 문제들을 Issues에 기록한다.
0 stars 0 forks source link

왜 DTO를 사용하는 걸까? #6

Closed ellyheetov closed 3 years ago

ellyheetov commented 3 years ago

DTO를 어떡해야 잘 생성할까에 대한 질문을 하다보니 DTO를 사용하는 이유가 궁금해졌다.

데이터를 읽어오는(CRUD중 Read) API를 만들때, Database에서 데이터를 가져와서 JSON객체로 return한다. 그러면 모든 Request와 Response에 맞춰서 DTO객체를 생성하야하는 걸까?

ellyheetov commented 3 years ago

DTO의 정의에 대해서 다시 생각해보자.

DTO란?

Data Transfor Object(데이터 전송 객체) 쉽게 말해서 DATA를 전송하기 위해 존재하는 객체이다.

DTO를 왜 생성해서 사용하는 걸까? DTO를 사용하는 주된 이유는 여러 호출을 단일 호출로 일괄처리하기 위해서이다.

remote interface에서 각각의 call은 비용이 비싸다. 그렇기 때문에 call을 줄일 필요가 있고, 이것은 한번의 call에 많은 데이타를 전송할 필요가 있다는 것을 의미한다. 많은 parameter를 이용하여 데이터를 전송하는 방법도 있지만, 자바에서는 single value만 return할 수 있으므로 불가능하다.

이에대한 해결책이 DTO인 것이다. DTO를 생성하여 한번의 call에 모든 데이터를 보낼 수 있게된다.

참고) https://martinfowler.com/eaaCatalog/dataTransferObject.html