DTO?

0

개념정리

목록 보기
2/10
post-thumbnail

GTO 말고 DTO 이잣샤!

이게 뭐야?

처음 접한 용어는 아닌데 무슨 뜻인지 몰라서 찾아봤다.
Data Transfer Object 라서 DTO라고 하고, 번역하면 데이터 전송 객체 라고 한다.

위키백과에서 설명하는 DTO

위키백과 DTO 링크

  • 프로세스 간에 데이터를 전달하는 객체
  • 클라이언트와 서버 간 왕복 시간과 관련되기 때문에 호출의 수를 줄이기 위해 여러 호출에 의해 전송되는 데이터를 축적하면서 오직 하나의 호출만으로 서비스되는 객체인 DTO를 사용하는 것
  • DTO의 경우 스토리지, 그리고 자체 데이터(뮤테이터와 접근자)의 조회를 제외하고 어떠한 동작도 하지 않는다,
  • DTO는 테스트에 필요한 어떠한 비즈니스 로직도 포함하지 않아도 되는 단순한 객체이다.

검색을 통해 얻은 정보

  • getter, setter 메서드만을 갖는다.
  • 자주 변경이 일어날 수도 있다.
  • Controller Layer 에서 Response DTO 형태로 Client에 전달한다.

내가 이해한 것

어디까지나 개인적으로 이해 한 부분이고, 틀린 부분이 있을 수도 있습니다.

  • Model과는 다른 개념
    • DB에 도달하기 전에 클라이언트와 서버가 통신하며 주고 받는 객체
    • 클라이언트와 직접 주고받는 객체의 내용이기 때문에 Model과 다를 수 있다.
    • Model 객체를 DTO로 번역하여 클라이언트에 전달하거나
    • 클라이언트에서 받은 DTO를 번역하여 Model로 바꿔서 DB에 저장하는 것
  • 수행을 위한게 아니라 단순히 전달을 목적으로 한 객체이기에, 로직을 포함 할 필요가 없다.
  • 클라이언트와 직접적으로 통신하는 구간이므로 변경이 자주 일어날 가능성이 있다.
    • Model의 변경을 막고자 DTO를 Model로 변환하는 구간이 필요할 것으로 생각됨
    • 그래서 변경이 자주 일어날 가능성이 있음
profile
지상 최강의 개발자 쥬니니

0개의 댓글