D: Data
A: Access
O: Object
의 약자로 데이터베이스에 접근하는 객체를 말합니다.
D: Data
T: Transfer
O: Object
의 약자로 데이터, Getter, Setter으로만 이루어진 객체를 말합니다.
예시 (Java)
(롬복을 사용하면 아래 코드 처럼 짧게 사용할 수 있습니다.)
(자바 14부터 record를 이용하여 DTO를 만들 수도 있습니다.)
public class Member {
private String name;
private Integer age;
public Member(String name, Integer age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
}
@AllArgsConstructor
@Getter @Setter
public class Member {
private String name;
private Integer age;
}
public record Member(String name, Integer age) {}
V: Value
O: Object
의 약자로 DTO와 다르게 setter가 존재하지 않는다는 특징이 있습니다. 즉 값을 읽는 것만 가능합니다.
DTO -> DAO -> DB