위로
아래
DTO
DTO (Data Transform Object)
- 데이터 전달을 위한 클래스
- 계층간 데이터를 주고 받을 때 (주로 비동기) 사용.
- View와 Controller 사이에서 데이터를 주고 받을 때 활용
- getter, setter 메소드만 갖는다.
- 일반적으로 테이블당 DTO 클래스를 하나씩 생성한다.
- 테이블 컬럼과 동일한 멤버 변수를 갖는다.
유저가 입력한 데이터를 DB에 넣는 과정
- 유저가 자신의 브라우저에서 form에 데이터를 입력
- form에 있는 데이터를 DTO에 넣어서 서버에 전송
- 해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스에 데이터 삽입
예시
더보기
package jdbc.member;
public class MemberDTO {
private String id;
private String name;
private String pw;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
}
DAO
DAO (Data Access Object)
- DB의 데이터에 접근하기 위한 객체.
- DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해서 사용
- 프로젝트의 서비스 모델과 실제 DB를 연결하는 역할.
- 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작한다.
- DB에 접근하여 CRUD에 해당하는 SQL 쿼리문을 실행한 후, 얻어온 결과를 앞서 만든 DTO 객체에 반환하는 일을 수행.
VO
VO (Value Object)
- 값을 위해 쓰인다.
- Read-Only 특징을 지녔다(사용하는 도중에 변경 불가능. 오직 읽기만 가능)
- DTO와 유사
- 오직 getter 기능만을 갖는다.
- 전달될 데이터의 값 그 자체다.
회원 정보 조회 매커니즘
- 클라이언트가 웹브라우저를 통해 서블릿에게 정보 요청
- MemberServlet은 요청을 받은 후 MemberDAO 객체를 생성해 listMembers() 메소드를 호출
- listMembers()에서 다시 connDB()메소드를 호출해 데이터베이스와 연결한 후, SQL문을 실행해 회원 정보를 조회
- 조회된 회원 정보를 MemberVO 속성에 설정한 후 다시 ArrayList에 저장
- ArrayList를 다시 메소드를 호출한 MemberServlet으로 반환한 후, ArrayList의 MemberVO를 차례대로 가져와 회원 정보를 HTML 태그의 문자열로 제작
- 만들어진 HTML 태그를 웹 브라우저로 전송해서 클라이언트에게 회원 정보를 출력