DAO, VO 차이점

DAO (Data Access Object)

데이터베이스에 접근하고 데이터를 조작하는 역할을 담당합니다.

데이터베이스와의 상호 작용을 담당하는 객체로, 주로 CRUD (Create, Read, Update, Delete) 연산을 수행합니다.
비즈니스 로직과 데이터베이스 액세스를 분리하여 유지보수성을 향상시킵니다.
데이터베이스 연결, 쿼리 수행, 결과 반환 등을 처리합니다.
예시:

public interface UserDao {
    User findById(Long userId);
    List<User> findAll();
    void save(User user);
    void update(User user);
    void delete(Long userId);
}

VO (Value Object)

비즈니스 로직에서 사용되는 데이터를 캡슐화하고 전달하는 역할을 담당합니다.

불변성(Immutable)을 가지며, 데이터의 일관성과 불변성을 유지합니다.
비즈니스 로직에서 사용되는 데이터를 담고 있으며, 주로 데이터 전달의 목적으로 사용됩니다.
데이터의 구조를 표현하고, 데이터의 묶음으로 사용됩니다.
예시:

public class User {
    private Long userId;
    private String username;
    private String email;

    // 생성자, 게터, 세터 등 생략
}

DAO는 데이터베이스와의 상호 작용을 처리하는 객체이며, 주로 CRUD 연산과 관련된 메서드를 제공합니다.
VO는 비즈니스 로직에서 사용되는 데이터를 표현하는 객체로, 데이터의 불변성을 유지하고 비즈니스 객체 간에 데이터를 전달하는 역할을 합니다.
DAO는 데이터베이스 액세스와 관련된 기능을 제공하고, VO는 비즈니스 로직에서 사용되는 데이터를 캡슐화하여 유지보수성과 일관성을 강화합니다.
일반적으로, DAO와 VO는 함께 사용되어 데이터베이스와 비즈니스 로직을 효과적으로 분리하고, 시스템의 확장성과 유지보수성을 향상시키는 데 기여합니다.

Leave a Comment