본문 바로가기
기타

VO, DAO, DTO, ENTITY 차이점

by 어쩌다개발 2024. 1. 23.
반응형

VO(Value Object)

- 목적 : VO는 값을 나타내는 객체로, 주로 불변(Immutable)하게 구현되어 값의 변화를 방지하고 객체 간의 안전한 데이터 전달을 지원한다.

- 특징 :
     - 불변성을 유지하며 주로 값(Attributes)을 가지고 있다.
     - 주로 도메인 모델에서 사용되며, 동일한 값을 가진 객체는 동등하다고 간주된다.
     - 비즈니스 로직이나 행위를 가지지 않고 데이터를 보관하며, 값의 일관성을 유지하기 위해 사용된다.
 

public class AddressVO {
    private final String city;
    private final String zipCode;

    public AddressVO(String city, String zipCode) {
        this.city = city;
        this.zipCode = zipCode;
    }

    // Getters
}

 

DAO(Data Access Object)

- 목적 : 데이터 액세스 계층에서 데이터베이스와의 상호작용을 처리하는 객체이다. 데이터베이스와의 통신을 캡슐화하고 비즈니스 로직과 데이터 액세스 코드를 분리한다.

-특징 :
     - 주로 CRUD 작업을 수행한다.
     - 데이터베이스와의 접근을 담당하여 비즈니스 로직이나 서비스에서 데이터베이스에 직접 접근하지 않도록 한다.
     - JDBC나 ORM 프레임워크를 통해 데이터베이스에 접근한다.

public class UserDao {
    public User findById(int userId) {
        // 데이터베이스에서 사용자 조회
        // ...
    }

    public void save(User user) {
        // 데이터베이스에 사용자 저장
        // ...
    }

    public void update(User user) {
        // 데이터베이스에서 사용자 업데이트
        // ...
    }

    public void delete(int userId) {
        // 데이터베이스에서 사용자 삭제
        // ...
    }
}

 

DTO(Data Transfer Obejct)

-목적 : DTO는 주로 다른 계층 간 데이터 전송을 위한 객체이다. 서로 다른 계층 간에 데이터를 호율적으로 전달하고자 할 때 사용된다.

-특징:
     - 주로 읽기 전용 데이터를 담고 있으며, 데이터 전달에만 사용된다.
     - 비즈니스 로직을 포함하지 않으며, 데이터 전송의 효율성을 높이기 위해 필요한 필드들로만 이루어진다.
     - 객체 간의 데이터 전송 시에 사용된다.

public class UserDTO {
    private String username;
    private String email;

    // Getters and setters
}

 

Entity

- 목적 : 데이터베이스 테이블과 매핑되는 엔터티 객체로, 비즈니스 도메인에서 가장 중요한 개념 중 하나이다. 데이터베이스의 레코드를 나타내며, 주로 비즈니스 로직을 가진다.

-특징
     - 데이터 베이스 테이블과 매핑되는 객체로 엔터티의 상태를 나타낸다.
     - 비즈니스 로직이나 행위를 가질 수 있으며, 엔터티의 상태를 조작하는 메서드를 포함한다.
     - 일반적으로 ORM을 통해 데이터베이스와 연동된다.

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;
    private String email;

    // Getters and setters, business logic methods
}
반응형

댓글