DTO (Data Transfer Object), DAO (Data Access Object), VO (Value Object)는 데이터 관련 프로그래밍에서 자주 사용되는 용어이다.
1. DTO (Data Transfer Object)
용도: 데이터를 전송하거나 데이터베이스에서 검색된 데이터를 저장하는 데 사용
특징: DTO는 주로 데이터 전송과 관련된 역할을 하는 객체로, 특정 비즈니스 로직을 포함하지 않는다. 주로 데이터의 구조를 정의하고, 데이터를 한 곳에서 다른 곳으로 전송하는 데 사용된다. 예를 들어, 웹 요청에서 데이터를 수신하거나 웹 응답으로 데이터를 보낼 때 사용할 수 있다.
예시: 사용자 등록 요청을 처리하는데 사용되는 DTO, 데이터베이스에서 검색한 사용자 정보를 저장하는데 사용되는 DTO 등.
2. DAO (Data Access Object)
용도: 데이터베이스와 상호작용하기 위한 객체. 데이터베이스와 통신하고 데이터를 검색, 생성, 수정, 삭제하는 데 사용된다.
특징: DAO는 주로 데이터베이스와의 통신과 관련된 비즈니스 로직을 처리하는 객체. 데이터베이스 연결, SQL 쿼리 실행, 결과 데이터를 DTO 또는 엔티티로 변환하는 등의 역할을 수행한다.
예시: 사용자 정보를 데이터베이스에 저장하고 검색하는 DAO, 주문 정보를 업데이트하고 삭제하는 DAO 등.
3. VO (Value Object)
용도: 비즈니스 로직에서 사용되는 값 객체. VO는 불변성(Immutable)을 가지며, 비즈니스 도메인의 값을 표현하기 위해 사용된다.
특징: VO는 주로 비즈니스 로직에서 데이터를 나타내는 데 사용되며, 값의 의미를 중요시하고 변경되지 않는 특성을 가진다. 예를 들어, 날짜 범위, 금액, 좌표 등의 값을 나타내는 데 사용된다.
예시: 주문의 금액을 나타내는 금액 VO, 좌표를 표현하는 좌표 VO 등.
요약하면, DTO는 데이터 전송과 관련된 객체, DAO는 데이터베이스와의 상호작용을 처리하는 객체, VO는 비즈니스 로직에서 값 객체를 나타내는 객체. 이들은 각각 다른 용도와 특성을 가지므로 상황에 따라 적절한 용도에 사용해야 한다.
'개발 > Java & Kotlin' 카테고리의 다른 글
[Spring] 정적파일 캐시에 담기 (158) | 2024.04.12 |
---|---|
[Spring] addAttribute, addFlashAttribute 차이 (95) | 2024.03.13 |
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (2) (152) | 2023.10.02 |
[Java] 오브젝트: 코드로 이해하는 객체지향 설계 (1) (124) | 2023.09.22 |
[Java] Record 알아보기 (57) | 2023.09.20 |