본문 바로가기

1.프로그래밍/Java

[Java] DAO, DTO, VO 개념과 차이

728x90
반응형

Spring boot를 공부하던 중 DAO, DTO, VO에 혼동이 너무 많이 일어난다.


그렇기에 확실히 알고가려고 한다.

DAO (Data Access Object)

DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 CRUD 등을 조작할 수 있는 기능을 수행한다.


즉, Service와 DB를 연결하는 역할을 한다. SQL을 사용하여 CRUD API를 동작할 수 있다.


@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    @Override
    Optional<User> findById(Long aLong);

DTO (Data Transfer Object)

DTO는 계층간 데이터 교환을 위한 객체이다. 즉, Service 와 Controller 사이에서 사용하는 데이터 교환 객체이다.


로직을 갖고있지 않는 순수한 객체이며 오로지 Getter/Setter 메소드만 갖는다.

@Getter
@Setter
public class UserDto{
    private String userName;
    private String password;
    private String email;
    private String userPhoneNumber;
    private String zipcode;
    private String address;

}

VO (Value Object)

VO는 DTO와 동일한 개념이지면 Read Only 속성을 갖는다.


단순히 값을 표현하기 위한 객체이다.

728x90
반응형