Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- JPA
- db
- 자바
- 오라클
- 프로그래머스
- 쿼리
- Eclipse
- jquery
- Java
- Vue
- oracle
- Git
- mybatis
- GitHub
- error
- aws
- 코틀린
- kotlin
- 알고리즘
- Spring
- 생성
- 함수
- 넥사크로
- JavaScript
- 시큐리티
- IntelliJ
- 에러
- Security
- 방법
- 스프링
Archives
- Today
- Total
송민준의 개발노트
DTO vs VO 본문
본 글은 우아한Tech 유튜브 채널을 본 것을 기반으로 정리한 글입니다.
https://www.youtube.com/watch?v=EeJnNaiMy3U
DTO와 VO란 어떻게 다를까??
우선 DTO(Data Transfer Object)는 레이어 간에 데이터를 전달하는 객체이다. (ex. 시험칠 때 OMR카드)
특징으로는
- 데이터 접근 메서드 외에 기능을 가지지 않음. (정렬, 직렬화 등 데이터 표현을 위한 기능을 가질 수는 있음)
- 데이터의 캡슐화를 통해 유연한 대응이 가능함 (데이터 요청 수 감소 효과)
VO(Value Object)는 값을 가지는 객체이다.
특징으로는
- 값 자체로 의미를 가지는 객체
- 변하지 않는 값을 가지는 객체(값이 변하지 않음을 보장하여 고도의 안정성과 생산성을 높임)
- 값이 같다면 동일한 객체
-> 각 개체를 비교하는 데 사용되는 ID가 없음
-> 같은 객체인지 판단하기 위해 각 속성들의 값을 비교함.
공통점
- 레이어 간 데이터를 전달할 때 사용 가능
(VO는 불변을 보장하기 때문에 데이터 전달 용도로 사용 가능)
차이점
DTO | VO |
값이 변할 수 있음 | 값이 변하지 않음 |
레이어와 레이어 사이에서 사용 | 모든 레이어에서 사용 가능 |
DTO dto1(1) != DTO dto2(1) | Vo vo1(1) == VO vo2(2) |
데이터 접근 이외의 기능을 가지지 않음 | 특정한 비즈니스 로직을 가질 수 있음. |
https://song8420.tistory.com/383
'우아한테크톡' 카테고리의 다른 글
Spring과 SpringBoot의 차이 (0) | 2021.07.25 |
---|