본문 바로가기

내배캠/TIL

DTO, DAO, VO

DTO 란?

Data Transfer Object (데이터 전송 객체)

 

프로세스 간에 데이터를 전달하는 객체로, 비즈니스 로직 같은 복잡한 코드 없이 getter/setter 메소드와 순수하게 전달하고 싶은 데이터만 담겨있다. 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는데, 여기서 계층이란 Presentation (View, Controller), Business(Service), Persistence(DAO, Repository) 등을 의미한다.

 

https://blog.scottlogic.com/2020/01/03/rethinking-the-java-dto.html

 

 

DAO 란?

Data Access Object. 실제로 DB의 데이터에 접근하는 객체.

DAO는 Service와 DB를 연결하는 역할을 하며, 실제로 DB에 접근하여 데이터를 삽입, 삭제, 조회, 수정 등 CRUD 기능을 수행한다. 

 

 

VO 란?

Value Object. 변경이 불가능하며 오직 읽기만 가능 (Read-Only)

DTO는 setter를 가지고 있어 값을 변경할 수 있지만 VO는 getter만을 가지기 때문에 읽기만 가능하고 수정은 불가능하다.

 

 

DTO와 VO의 차이점

DTO는 인스턴스 개념이고, VO는 리터럴 값 (변하지 않는 데이터) 개념이다.

DTO는 단지 데이터를 담아 전달하는 역할만 하지만 VO는 객체로서 데이터 그 자체에 의미를 갖는다.

 

 

 

 

 

 

 

 

[참고 자료]

https://hstory0208.tistory.com/entry/Spring-DAO-DTO-VO%EB%9E%80-%EA%B0%81%EA%B0%81%EC%9D%98-%EA%B0%9C%EB%85%90%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

 

[Spring] DAO, DTO, VO란? 각각의 개념에 대해 알아보자.

DAO(Data Access Object) "실제로 DB의 데이터에 접근하는 객체" DAO는 Service와 DB를 연결하는 역할을 하며, 실제로 DB에 접근하여 data를 삽입, 삭제, 조회, 수정 등 CRUD 기능을 수행합니다. JPA에서는 DB에 데

hstory0208.tistory.com

https://hudi.blog/data-transfer-object/

 

DTO의 개념과 사용범위

DTO는 우테코 과정 중 정말 많이 들어봤고, 나름 사용도 많이 했지만 이상하게 바람직하게 사용하고 있다는 확신이 들지 않는 개념이다. DTO에 대한 내용은 항상 새롭게 알아가는데, 이러다간 DTO

hudi.blog

https://tristy.tistory.com/54

 

DTO란 무엇이고 왜 사용해야 할까?

밑의 예제 코드는 전부 NestJS + TypeOrm 환경에서 작성되었습니다. 트리스티가 Nest Js를 공부하며 남긴 기록입니다. 틀린 내용은 언제든지 말씀해주세요 ~! 📢 DTO란 무엇인가요? DTO(Data Transfer Object,

tristy.tistory.com

 

'내배캠 > TIL' 카테고리의 다른 글

IoC와 DI  (2) 2024.08.12
오브젝트와 의존관계  (0) 2024.08.09
Git .gitignore 적용하기  (0) 2024.08.07
24. 08. 06  (0) 2024.08.06
Stateless  (0) 2024.08.06