[Spring] DAO, DTO, VO 정리

특성DAO (Data Access Object)DTO (Data Transfer Object)VO (Value Object)
목적데이터베이스와의 상호작용, 영속성 계층 구현계층 간 데이터 전송도메인 객체의 불변성 유지
기능데이터베이스에 대한 CRUD 작업 수행계층 간 데이터 전송 및 캡슐화도메인 객체의 상태 저장
역할영속성 계층의 역할을 수행서비스 계층과 뷰 계층 간 데이터 전송도메인 객체의 상태 표현
표현 방식인터페이스 및 구현 클래스로 구성클래스 또는 구조체로 구성클래스로 구성
불변성주로 가변 객체로 데이터 조작주로 불변 객체로 사용주로 불변 객체로 사용
프레임워크 종속성Spring 프레임워크와 연동프레임워크에 종속적이지 않음프레임워크에 종속적이지 않음
사용 예시
 public interface UserDao {
                        User findById(Long id);
                        void save(User user);
                        void delete(Long id);
                    }
                    public class UserDto {
                        private String username;
                        private String email;
                        // Getters and setters
                    }
                    public class UserVo {
                        private final String username;
                        private final String email;
                        // Constructor and getters
                    }

Leave a Comment