JAVA DAO, DTO, VO에 대해서

DAO (Data Access Object)

  • 데이터베이스의 data접근을 위한 객체입니다. 데이터베이스 접근을 위한 로직과 비즈니스 로직을 분리하기 위해 사용합니다. DAO는 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트입니다.
  • 사용자는 자신이 필요한 Interface를 DAO에 건네주고 DAO는 이 인터페이스를 구현한 개체를 사용자에게 편리하게 사용할 수 있도록 반환해줍니다.

 

DTO (Data Transfer Object)

  • 계층간 데이터 교환을 위한 자바빈즈를 말합니다. 여기서 계층은 컨트롤러, 뷰, 비즈니스, 퍼시스턴스 계층을 말하며 각 계층간 데이터 교환을 위한 객체를 말합니다.
  • 계층들간의 데이터 교환을 위해 통일성있는 오브젝트를 제공할 필요가 있으며 그것을 그룹한 것이 DTO입니다. 데이터베이스 레코드의 데이터를 매핑하기 위한 데이터 객체나, 다양한 basic 폼을 제공해줍니다. 데이터를 담을 그릇이라고 생각하면 될 것 같습니다.
  • Getter와 setter 메소드가 존재하며 JAVA에서는 문법적으로 제공된 않지만 표면적으로 set과 get이후에 나오는 단어가 property라고 약속합니다. Get과 set이 쌍을 이루어 get에 매칭된 set값들을 가지고 오게 됩니다. 파이썬의 딕셔너리 구조의 key-value와 비슷하다고 생각하면 될 것 같습니다.

 

VO (Value Object)

  • 값 오브젝트로써 값을 위해 쓰입니다.
  • DTO와 공통점은 데이터를 getter를 통해 사용하므로 주 목적은 같습니다. 하지만 VO는 불변의 성격을 가졌기에 차이점이 있습니다.
  • 이러한 클래스는 중간에 값을 바꿀 수 없고 새로 만들어야 한다는 특징이 있습니다.
  • 예를들어 Color클래스에 Red를 표현하기 위해 Color.Red등을 사용하며 getter 기능만이 존재합니다.

'ETC > Java' 카테고리의 다른 글

[JAVA] JSP Action Tag  (2) 2022.05.17
JAVA Web Servlet과 JSP  (5) 2022.05.16