Entity ,DTO ,VO 각각의 의미들

rvlwldev·2023년 4월 5일
0

Spring

목록 보기
5/8

Entity

데이터베이스와 직접 연결되는 클래스이다.
그러므로 도메인모델의 실체화라고도 할 수 있다. 왜? 해당 도메인의 실제 데이터를 담고 있으니까
어떤 로직을 담고있는 경우가 많다. (setName 등으로...)

보통 테이블에서 하나의 ROW를 객체로 표현한다.

DTO (Data Transfer Object)

이름 그대로 오직 계층간의 데이터를 주고 받는 역할을 하는 클래스
딱 이역할만을 하기 때문에 다른 로직등을 포함하고 있지 않음
주로 클라이언트와 서비스/컨트롤러에서 데이터를 주고받는데 사용된다.

VO (Value Object)

값(Value)만 가지는 객체이다
기본적으로 값을 변경할 수 없으며 그냥 가지고 있다.
보통 속성 값의 집합으로 사용되며 DDD에서 중요한 개념이다.

나는 과거에 프로젝트를 진행할때 어떤 도서의 ISBN값이나 지은이, 제목 등의 불변값 등을 VO 객체로 활용했었다.

Entity 객체의 복잡성을 줄이는데 많이 사용된다.

요약
Entity: 데이터베이스와 매핑되는 객체, 로직을 포함하는 경우가 많음
DTO: 계층 간 데이터 교환을 위한 객체, 다른 기능은 없음
VO: 값을 갖는 객체, 불변성을 가지는 객체

0개의 댓글