일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 디자인
- 패스트캠퍼스후기
- 리눅스
- String
- linux
- 자바기본
- 패캠챌린지
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 직장인자기계발
- java
- javabasic
- 패스트캠퍼스
- 스프링
- 재택근무
- 디자인패턴
- Spring
- 웹
- ncs
- 자바예제
- 자바
- js
- DesignPattern
- DB
- 국비
- 자바기초
- 자바연습문제
- 직장인인강
- java기초
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 데이터베이스
- Today
- Total
FIF's 코딩팩토리
DAO vs DTO vs VO 본문
DAO(Data Access Object)는 데이터베이스의 data에 접근하기 위한 객체이다.
데이터베이스 접근을 위해 로직과 비즈니스로직을 분리해서 사용한다.
DAO의 경우 DB와 연결할 Connection까지 설정되어 있는 경우가 많다.
DTO(Data Transfer Object)는 계층간 데이터 교환을 위한 자바빈즈를 의미한다.
여기서 말하는 계층간의 의미는 Controller, View, Business Layer 등을 말하며 각 계층간 데이터 교환을 위한 객체를 의미한다.
DTO는 로직을 가지지 않는 순수한 데이터 객체이고 getter와 setter메소드만 가진 클래스를 의미한다.
getter/setter 메소드에서 중요한건 Property다.
자바는 Property가 문법적으로 제공되지 않는다. 그래서 지켜야할 약속이 있다.
getter/setter에서 set과 get이후에 나오는 단어가 property라고 약속하는 것이다.
프로퍼티가 멤버변수로 결정되는 것이 아닌 getter/setter에서의 프로퍼티로 결정된다.
즉 멤버변수는 아무렇게나 지어도 영향이 없고, getter/setter로 프로퍼티(데이터)를 표현한다.
VO(Value Object)는 DTO와 혼용해서 쓰지만 미묘한 차이가 있다.
VO는 값 오브젝트로써 값을 위해 쓰인다. 자바는 값 타입을 표현하기 위해 불변 클래스를 만들어 사용하는데, 불변이라는 것은 readOnly 특징을 가진다.
이러한 클래스는 중간에 값을 바꿀 수 없고, 새로 만들어야 하는 특징이 있다.
예를들어 Color클래스를 보면 Red를 표현하기 위해 Color.Red를 사용하며 getter기능만 존재한다.
VO와 DTO는 둘다 데이터를 저장하는 용도이다. 입력된 데이터를 getter를 통해 사용하므로 주요 목적은 같다.
그러나 DTO의 경우 가변의 성격을 가진 클래스다. (setter사용)
그에 반해 VO는 불변의 성격을 가진다. (readOnly-getter기능만 존재)
'Database(데이터 베이스)' 카테고리의 다른 글
MariaDB 기본 SQL문장 사용법 (0) | 2019.05.24 |
---|---|
CentOS7에 MariaDB설치후 SQL-developer로 접근 (0) | 2019.05.23 |
서버이중화, Failover, LoadBalance 뜻 (0) | 2019.05.23 |
Oracle RAC(Real Application Cluster)란? (0) | 2019.05.21 |
CentOS에 Oracle12c 설치후 local에서 접속하기 (0) | 2019.05.16 |