본문 바로가기

Backend

DTO / VO / Entity

반응형

 

  DTO VO Entity
정의 Data Transfer Object Value Object Entity
레이어간 데이터 전송용 객체 값을 표현하는 객체 DB 테이블 매핑용 객체
상태 변경 가능 여부 가변적 혹은 불변 객체 불변 객체 가변적 혹은 불변 객체
비즈니스로직 포함 가능 여부 불가능 가능 가능

 

DTO

- 계층간 데이터 전달만을 목적으로 사용

- 로직 없이 getter/setter 메서드 만을 사용

- setter없이 생성자를 이용해 초기화 한다면 불변 객체로 사용 가능

 

VO

- 값을 표현하기 위한 객체

- getter 메서드와 비즈니스 로직 사용 가능

- 서로 다른 이름을 갖는 VO 인스턴스더라도 모든 속성 값이 같다면 두 인스턴스는 같은 객체라고 할 수 있음

    = 값 비교를 위해 equals()와 hashcode() 메서드를 오버라이딩하여 반드시 포함

    eg) 만원권 두 장이 있다고 할 때, 두 장의 지폐는 같은 10,000원의 값을 가지지만 지폐번호, 즉 식별번호(주소)가 다름

 

Entity

- DB 테이블을 객체와 Mapping하기 위해 사용

- 응답이나 요청의 값을 전달하는 목적으로 사용 X

- id를 통해 구분

 

 

 

반응형

'Backend' 카테고리의 다른 글

JMeter 부하테스트  (0) 2025.01.14
240729 회고  (0) 2024.07.29
application.properties vs application.yml  (0) 2024.02.19
H2 Manual  (0) 2024.02.19
02/15  (0) 2024.02.15