DTO 란?
Data Transfer Object (데이터 전송 객체)
프로세스 간에 데이터를 전달하는 객체로, 비즈니스 로직 같은 복잡한 코드 없이 getter/setter 메소드와 순수하게 전달하고 싶은 데이터만 담겨있다. 계층 간 데이터 전송을 위해 도메인 모델 대신 사용되는데, 여기서 계층이란 Presentation (View, Controller), Business(Service), Persistence(DAO, Repository) 등을 의미한다.
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는 객체로서 데이터 그 자체에 의미를 갖는다.
[참고 자료]
[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
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 |