DTO, Entity의 차이?

eunsiver·2023년 2월 7일
0
post-thumbnail

DTO와 Entity의 차이는 무엇이고 어떻게 구분하여 사용하는 것일까?

업로드중..

UserDB를 가지고 여러가지 비즈니스 로직을 실행할 때가 많다.
ex) 로그인, 회원가입, 회원이 갖고 있는 포인트 조회, 변경 등등

DTO

계층 간의 데이터 교환을 목적으로 한 객체입니다.
로직을 갖고 있지 않는 순수한 데이터 객체이며, Getter/Setter 메서드만 갖는다.
데이터 전달의 일회성 성격

Entity

Entity 클래스는 실제 DB의 테이블과 1:1로 매핑 되는 클래스이다.

VO:

DTO 와 혼용되어 동일하게 사용되기도 하지만 DTO와의 차이점으로는 불변의 객체로 특정한 값을 나타내는 객체이다. 로직을 포함할 수 있다.(getter만 존재)

Entity를 DTO 대신 사용한다면?

View에서 표현하는 속성 값들의 요청이 계속 달라진다. 그 때마다 Entity의 속성 값을 변경하면 영속성 모델을 표현한 Entity의 순수성이 모호해지기 때문이다. Controller에서 쓸 DTO와 Entity클래스를 분리하는 것이 좋다.

이 둘을 분리하는 이유?

DB계층과 View 계층 사이의 역할을 분리하기 위해서


DTO는 DB와 1:1 매핑을 하는 Entity 객체와 달리 각 계층끼리 주고 받는 전송 객체이다.
순수하게 데이터를 담고 있다는 점에서 Entity와 유사하지만 목적 자체가 데이터의 전달이므로 일회성으로 사용되는 성격이 강하다.


JPA를 이용하게 된다면 Entity 객체는 단순히 데이터를 담는 객체가 아니라 실제 DB와 관련이 있고 내부적으로 EM(EntityManager)이 관리하는 객체이다.

참고
https://wjddntjr555w.tistory.com/50

profile
Let's study!

0개의 댓글