DTO(Data Transfer Object)
DTO(Data Transfer Object)는 데이터 전송(이동) 객체라는 의미를 가진다.
DTO는 주로 비동기 처리를 할 때 사용한다.
계층간 데이터 교환을 위한 객체(Java Beans)이다.
DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다.
즉, DB의 데이터가 Presentation Logic Tier로 넘어올때는 DTO로 변환되어 오고가는 것이다.
로직을 갖고 있지 않는 순수한 데이터 객체이며, getter/setter 메서드만을 갖는다.
또한 Controller Layer에서 Response DTO 형태로 Client에 전달한다.
VO(Value Object)
VO(Value Object)는 말 그대로 값 객체라는 의미를 가지고 있다.
VO의 핵심 역할은 equals()와 hashcode() 를 오버라이딩 하는 것이다.
VO 내부에 선언된 속성(필드)의 모든 값들이 VO 객체마다 값이 같아야, 똑같은 객체라고 판별한다.
VO는 Getter와 Setter를 가질 수 있으며, VO는 테이블 내에 있는 속성 외에 추가적인 속성을 가질 수 있으며,
여러 테이블(A, B, C)에 대한 공통 속성을 모아서 만든 BaseVO 클래스를 상속받아서 사용할 수 도있습니다.
DTO와 VO의 차이
VO는 DTO와 동일한 개념이지만 read only 속성을 갖는다.
VO는 특정한 비즈니스 값을 담는 객체이고, DTO는 Layer간의 통신 용도로 오고가는 객체를 말한다.
참고
velog.io/@gillog/Entity-DTO-VO-%EB%B0%94%EB%A1%9C-%EC%95%8C%EA%B8%B0
'Programming > Spring' 카테고리의 다른 글
[Springboot] 회원관리 예제 - (2)회원 도메인과 리포지토리 만들기 (0) | 2021.03.26 |
---|---|
[Springboot] 회원관리 예제 - (1)비즈니스 요구사항 정리 (0) | 2021.03.26 |
[JSP] 절대경로와 상대경로 (1) | 2021.01.09 |
[Spring] IoC, DI, DL (0) | 2020.12.20 |
[Spring]@RequestBody, @RequestParam 개념정리 (2) | 2020.12.18 |
댓글