DAO, DTO, VO

kimwoody·2021년 9월 8일
1

DAO, DTO, VO는 무엇일까

요즘 자바와 데이터베이스를 공부하는 중인데 DAO, DTO, VO라는 용어를 접하게 됐다. 이게 뭔지는 모르겠지만 클래스 이름을 지을때 저 용어들을 사용하면서 지었고, 그 클래스들은 각각 다른 역할(DAO는 데이터베이스를 연결해서 사용하는 역할, DTO와 VO에는 데이터를 저장하는 역할)을 했다. 그래서 용어를 찾아보고 정리하게 됐다.

1. DAO(Data Access Object)

  • Database에 있는 Data에 접근하기 위한 객체
  • Database에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용한다.
  • Database에 접속하여 데이터의 삽입, 삭제, 갱신, 읽기 작업을 시행하는 클래스이다.

2. DTO(Data Transfer Object)

  • 계층간(Controller, View, Business Layer)의 데이터교환을 위한 자바 빈즈(Java Beans)를 의미한다.
  • DTO는 로직을 갖고있지 않은 순수한 데이터의 객체이며 객체의 속성과 그 속성의 접근을 위한 getter 및 setter 메소드만을 가지고 있다.
  • VO(Value Object)와 용어를 혼용해서 많이 사용하는데, VO는 읽기만 가능한 Read Only 속성을 가지기 때문에 DTO와는 차이점이 존재한다.

    Java Beans

    • 자바로 작성된 소프트웨어 컴포넌트를 지칭하는 단어
    • 데이터 표현을 목적으로하는 자바 클래스

3. VO(Value Object)

  • 값 오브젝트로써 값을 위해 사용한다.
  • 자바에서 단순히 값을 표현하기 위해 불변 클래스를 만들어 사용한다.
  • DTO와 유사하지만 DTO는 setter를 가지고 있어 값이 변할 수 있다.

0개의 댓글