위로 아래

DTO

DTO (Data Transform Object)

  1. 데이터 전달을 위한 클래스
  2. 계층간 데이터를 주고 받을 때 (주로 비동기) 사용.
  3. View와 Controller 사이에서 데이터를 주고 받을 때 활용
  4. getter, setter 메소드만 갖는다.
  5. 일반적으로 테이블당 DTO 클래스를 하나씩 생성한다.
  6. 테이블 컬럼과 동일한 멤버 변수를 갖는다.

 

유저가 입력한 데이터를 DB에 넣는 과정

  1. 유저가 자신의 브라우저에서 form에 데이터를 입력
  2. form에 있는 데이터를 DTO에 넣어서 서버에 전송
  3. 해당 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)

  1. DB의 데이터에 접근하기 위한 객체.
  2. DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해서 사용
  3. 프로젝트의 서비스 모델과 실제 DB를 연결하는 역할.
  4. 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작한다.
  5. DB에 접근하여 CRUD에 해당하는 SQL 쿼리문을 실행한 후, 얻어온 결과를 앞서 만든 DTO 객체에 반환하는 일을 수행.

 

 

 


VO

VO (Value Object)

  1. 값을 위해 쓰인다.
  2. Read-Only 특징을 지녔다(사용하는 도중에 변경 불가능. 오직 읽기만 가능)
  3. DTO와 유사
  4. 오직 getter 기능만을 갖는다.
  5. 전달될 데이터의 값 그 자체다.

 

 

 


회원 정보 조회 매커니즘

  1. 클라이언트가 웹브라우저를 통해 서블릿에게 정보 요청
  2. MemberServlet은 요청을 받은 후 MemberDAO 객체를 생성해 listMembers() 메소드를 호출
  3. listMembers()에서 다시 connDB()메소드를 호출해 데이터베이스와 연결한 후, SQL문을 실행해 회원 정보를 조회
  4. 조회된 회원 정보를 MemberVO 속성에 설정한 후 다시 ArrayList에 저장
  5. ArrayList를 다시 메소드를 호출한 MemberServlet으로 반환한 후, ArrayList의 MemberVO를 차례대로 가져와 회원 정보를 HTML 태그의 문자열로 제작
  6. 만들어진 HTML 태그를 웹 브라우저로 전송해서 클라이언트에게 회원 정보를 출력