DTO?

juunini·2021년 2월 1일
0

개념정리

목록 보기
2/7
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
Full StackOverFlow

0개의 댓글