DTO와 Entity의 차이

최민영·2024년 9월 25일

IntelliJ

목록 보기
26/30

Entity
실제 DB 테이블과 매핑되는 핵심 클래스
DB 테이블에 존재하는 column을 필드로 가지는 객체
DB 테이블과 1:1 매핑되며 테이블에 존재하지 않는 column을 필드로 가질 수 없음
DB의 영속성(persistent)을 위해 사용되는 객체이므로, 요청(Request) 및 응답(Response) 값을 전달하는 클래스로 사용되는 것은 지양해야 한다.
변경 불가한 인스턴스에 대해 setter로 접근이 가능하므로 일관성과 안전성을 위해 setter 사용을 지양해야 한다.

DTO (Data Transfer Object)
계층 간 데이터 교환이 이루어질 수 있도록 하는 객체
controller처럼 클라이언트와 직접 마주하는 계층에서는 DTO를 사용해 데이터를 교환하며 view-controller 간의 데이터를 주고받을 때 활용성이 높다.
getter/setter 이외의 비즈니스 로직은 포함하지 않는다.

DTO와 Entity 분리 이유
DB와 View 사이의 역할을 분리하기 위해
DTO가 일회성으로 데이터를 주고받는 용도로 사용되는 것과 달리, Entity는 Life cycle이 DTO와 전혀 다르다.
불필요한 정보 노출을 막고 view에서 요청하는 정보에 맞게 데이터를 변환하기 위해 entity와 dto를 사용하게 된다.

0개의 댓글