Entity?
실제 DB와 매핑되는 클래스
간단하게 말하면 실체, 객체
이를 기준으로 테이블이 생성되고 스키마가 변경된다.
따라서 Entity를 요청이나 응답값으로 전달하는 클래스로 사용해서는 안된다.
DTO?
Data Transfer Object로 데이터 전송 객체라는 의미를 갖고 있다.
계층 간 데이터 교환을 하기위한 객체로 데이터를 담아 전달하는 객체이다.
Ex) (View < DTO > Controller < DTO > Service)
DTO Features
백엔드의 효율성
효율적인 백엔드 설계를 하려면 요청의 횟수를 최소화해야 한다.
-> 최소화 하기 위해서 한 번의 많은 요청에 최대한 많은 데이터를 전송해야 한다.
이 때 사용하는 것이 DTO이다.
유지보수
Entity를 가져와 하나하나 매핑을 해서 로직을 짰는데 새로운 필드가 추가 될 경우 로직에 다시 하나하나 새로운 필드를 추가 해야한다. 그러나 DTO를 사용하면 DTO에 새로운 필드 하나만 넣어주면 된다.
Difference between Entity and DTO
Entity는 실제 테이블과 매핑되어 만일 변경되게 되면 여러 클래스에 영향을 끼치고, DTO는 View와 통신하며 자주 변경되므로 분리해주어야 한다.
즉, 1:1로 매칭되는 Entity와 다르게 DTO는 통신간의 Data 형태를 정의한것임으로 수시로 변경이 될 수 있다.
이것을 위해 서로 분리한 것이다.
728x90
반응형