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
- 쿼리
- 방법
- aws
- 프로그래머스
- 스프링
- 에러
- Eclipse
- 코틀린
- 자바
- JavaScript
- jquery
- Spring
- db
- oracle
- JPA
- Vue
- 넥사크로
- Git
- kotlin
- IntelliJ
- Java
- 생성
- error
- 오라클
- 알고리즘
- mybatis
- GitHub
- 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 DTO 관리 패턴에 대한 고민
공부할 때나 실무에서나 개발을 하다보면 정신없게 늘어만 가는 DTO를 보고 어떻게 줄일 수 없을까라는 생각을 하게 된다. 너무 많아져 IDE의 도움 없이는 찾지도 못할 수준이 되는 프로젝트도 있
song8420.tistory.com
'우아한테크톡' 카테고리의 다른 글
Spring과 SpringBoot의 차이 (0) | 2021.07.25 |
---|