SPRING
VO & DAO & DTO란 무엇인가
작은달팽이
2023. 1. 19. 17:04
스프링을 공부하면서 용어가 헷갈리는 경우가 많은데 복습하면서 확실히 정리해두기 위해서 포스팅을 했습니다.
VO(Value Object) 혹은 엔티티(Entity)
객체지향 프로그램에서는 데이터를 '객체'라는 단위로 처리한다.
ex) 테이블의 한 행(row) → 하나의 객체
- 엔티티(Entity) : 데이터베이스에서의 하나의 데이터
- VO(Value Object) : 값을 보관하는 용도(객체), 테이블의 한 행 개념
- 자바에서는 엔티티를 처리하기 위해 테이블과 유사한 구조의 클래스를 만들어서 객체로 처리하는 방식을 사용한다.
- 주로 데이터 자체만을 의미하기 때문에 getter만을 이용한다.
DAO(Data Access Object)
- DAO(Data Access Object) : 데이터를 전문적으로 처리하는 객체, 데이터베이스의 접근과 처리를 전담한다.
- 주로 VO를 단위로 처리한다.
- JDBC프로그램을 작성한다는 의미는 실제로는 DAO를 작성한다는 의미가 된다.
DTO(Data Transfer Object)
- 3티어와 같이 계층을 분리하는 경우 반드시 계층이나 객체들 간에 데이터 교환이 이루어진다.
- 계층3티어구조
프리젠테이션 계층/ 서비스(비즈니스 로직처리) 계층/ 영속(데이터베이스 담당) 계층 - 대부분 한 개 이상의 데이터를 전달할 경우가 많다. → DTO로 묶어서 전달
- 계층3티어구조
- DTO(Data Transter Object) : 여러 개의 데이터를 묶어서 하나의 객체로 전달하는 것
- 대부분 Java Beans 형태로 구성한다.
- Java Beans의 형식
- 생성자가 없거나 반드시 파라미터가 없는 생성자 함수를 가지는 형태
- 속성(멤버 변수)은 private으로 작성
- getter/setter를 제공할 것
- Java Beans의 형식
- 대부분 Java Beans 형태로 구성한다.
VO 와 DTO
VO와 DTO는 유사한 모습이라 두 개를 비교해보고자 한다.
- VO
- 데이터베이스의 엔티티를 자바 객체로 표현한 것
- getter만을 이용한다 (주로 데이터 자체를 의미)
- DTO
- 각 계층을 오고 가는데 사용되는 택배상자 개념
- getter/setter를 이용해서 자유롭게 데이터 가공 가능
스프링 공부하면서 필요내용들을 조금씩 정리중입니다..
출처 : 자바 웹개발 워크북(구멍가게 코딩단)