🔍 DTO(Data Transfer Object)
Data Transfer Object. 즉, 데이터를 전송하는 객체라는 뜻이다.
- DB 작업에 필요한 데이터를 보관하는 클래스(=객체)
- DAO 객체가 DB 작업 수행을 위해 사용할 데이터를 전달하거나, DAO 객체로부터 데이터 조회 후 리턴받을 때 변수를 통해 각각의 데이터 관리가 가능하다. 하지만 DTO 객체를 사용하면 여러 데이터(변수)를 하나의 객체(=묶음)으로 관리하고 전송할 수 있다. 즉, 활용도가 높아진다.
- DB 테이블 내의 칼럼에 대응하는 멤버변수를 선언하고, 각 멤버변수에 대한 Getter/Setter 메서드를 정의한다.
(필요에 따라 생성자도 정의할 수 있으며, 이 때 기본 생성자는 무조건 포함되어야 한다.)
- 클래스 이름은 XXXDTO 형식으로 지정한다.
=> XXX는 주로 해당 DB 작업을 수행하는 데 사용되는 테이블 명을 사용한다.
ex) 회원 관련 정보를 저장하는 member 테이블을 다루는 DTO 클래스 = MemberDTO
게시판 관련 정보를 저장하는 board 테이블을 다루는 DTO 클래스 = BoardDTO
=> 단, JSP 애플리케이션 개발 시 DTO 클래스를 xxxBean 또는 xxxVO 클래스로 작성하기도 한다.
ex) MemberDTO = MemberBean = MemberVO -> 프로젝트 수행하는 개발자의 특성에 따라 다른 이름을 사용한다.
public class MemberBean {
// 테이블의 각 컬럼에 대응하는 멤버변수 선언 -> 접근제한자는 private
private int idx;
private String name;
private String id;
private String passwd;
private String email;
private String gender;
private Date date;
// 각 멤버변수에 접근하기 위한 Getter / Setter 메서드 정의
public int getIdx() {
return idx;
}
public void setIdx(int idx) {
this.idx = idx;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String toString() {
return "MemberBean [idx=" + idx + ", name=" + name + ", id=" + id + ", passwd=" + passwd + ", email=" + email
+ ", gender=" + gender + ", date=" + date + "]";
}
}
'개발 > MVC & Servlet' 카테고리의 다른 글
[MVC] Action 클래스 (0) | 2023.03.23 |
---|---|
[MVC] Action 인터페이스 (0) | 2023.03.23 |
[MVC] DAO 클래스 정의 (0) | 2023.03.23 |
[MVC] 프로젝트 패키지 구조 (0) | 2023.03.15 |
[Servlet] Redirect & Dispatch (0) | 2023.03.11 |