728x90
DAO (Data Access Object)
- DataBase의 data에 접근하기 위한 객체로, 데이터 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행함
- DataBase 접근 로직과 비지니스 로직을 분리하기 위해 사용함
- DB와 연결할 Connection 까지 설정되어 있는 경우가 많음
- 현재 많이 쓰이는 Mybatis 등을 사용할 경우 커넥션풀까지 제공되고 있기 때문에 DAO를 별도로 만드는 경우는 드뭄
DTO (Data Transfer Object)
- 계층 간(Controller, View, Business, Persistent Layer, DataBase) 데이터 교환을 하기 위해 사용하는 객체(Java Beans)
- 로직을 가지지 않는 순수한 데이터 객체 (getter & setter 메소드만 가진 클래스)
- 유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송할 때 사용
- 주로 비동기 처리를 할 때 사용
VO (Value Object)
- 단순히 값을 표현하기 위해 쓰임
- 사용하는 도중에 변경 불가능한 Read-Only 클래스
- equals()와 hashcode() 를 오버라이딩 하는 것이 핵심 역할
- VO 내부에 선언된 속성(필드)의 모든 값들이 VO 객체마다 값이 같아야, 똑같은 객체라고 판별함
- 테이블 내에 있는 속성 외에 추가적인 속성을 가질 수 있으며, 여러 테이블(A, B, C)에 대한 공통 속성을 모아서 만든 BaseVO 클래스를 상속받아서 사용할 수도 있음
DTO와 VO의 차이점
DTO | VO |
setter를 통한 가변 | 불변 |
Java Beans
- Java로 작성된 소프트웨어 컴포넌트를 지칭하는 단어
- 비즈니스 로직 부분을 담당하는 Java 프로그램 단위
- JSP페이지가 복잡한 자바 코드로 구성되는 것을 피할 수 있음
- 재사용 가능한 컴포넌트를 만들 수 있음
'두두의 IT > Spring' 카테고리의 다른 글
Builder와 Getter/Setter (0) | 2023.04.18 |
---|---|
int, Integer 차이 (0) | 2023.04.17 |
JUnit5 (0) | 2022.11.10 |
조회 빈이 2개 이상일 때 (0) | 2022.10.31 |
lombok (0) | 2022.10.31 |