쌤리

[JAVA] DAO, DTO, VO 정리 본문

자바 JAVA/자바 관련 상식

[JAVA] DAO, DTO, VO 정리

saml2l 2020. 8. 25. 09:27
  • DAO?
    • Data Access Object
    • DB 에 있는 데이터에 접근하기 위한 객체
      • 웹서버DB와 연결하기 위해 매번 Connection 객체를 생성함.
      • ex) 게시물 리스트를 보거나, 글을 작성하거나 등, 데이터를 불러올 때 마다 Connection 객체를 생성하는 것은 비효율적
      • 이것을 해결하기 위해 ConnectionPool 이 있다.
        • ConnectionPoolConnection 객체를 미리 만들어 놓고 가져다 쓴다. 다 쓴 커넥션은 풀에 반납. 커넥션은 닫지 않는다.
        • ConnectionPool 은 한번 만들어두면 DB작업이 필요 할때 Connect 를 새로 만들지 않아도 된다.
        • ConnectionPoolConnection 을 또 만드는 오버헤드를 효율적으로 하기 위해 DB에 접속하는 객체를 전용으로 하나만 만들고 모든 페이지에서 그 객체를 호출해다 사용한다면? 이렇게 커넥션을 하나만 가져오고 그 커넥션을 가져온 객체가 모든 DB와의 연결을 하는것이 바로 DAO 객체이다.
      • DAO 는 DB 를 사용해 데이터를 조회, 조작하는 기능을 전담하도록 만든 오브젝트.
        • 사용자는 필요한 interface 를 DAO에게 넘기고 DAO 는 이것을 구현한 객체를 사용자에게 편리하게 사용할 수 있도록 반환해준다.
    • DTO(VO)
      • DTO: Data Transfer Object
      • VO : Value Object VO 는 DTO 와 동일한 개념이지만 read only 속성을 가진다.
      • 계층간 데이터 교환을 위한 자바 Beans
        • 계층이란, Controller, View, Business Layer, Persistent Layer
      • DTO 는 순수한 데이터 객체이며 속성에 접근하기 위한 getter, setter method 만 가진 클래스.
      •  
package com.sbs.sbl.mp.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//lombok 을 사용해서 getter setter 는 생략됨
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Member {
	private int id;
	private String regDate;
	private String updateDate;
	private boolean delStatus;
	private String delDate;
	private boolean authStatus;
	private String loginId;
	private String loginPw;
	private String name;
	private String nickname;
	private String email;
	private String cellphoneNo;
}

 

참고: :https://jungwoon.github.io/common%20sense/2017/11/16/DAO-VO-DTO/

 

 

(기타) 오버헤드란

 

• From. 위키백과

오버헤드(Overhead)란 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.

 

예를 들어 A라는 처리를 단순하게 실행한다면 10초 걸리는데, 안전성을 고려하고 부가적인 B라는 처리를 추가한 결과 처리시간이 15초 걸렸다면, 오버헤드는 5초가 된다. 또한 이 B라는 처리를 개선해 B'이라는 처리를 한 결과, 처리시간이 12초가 되었다면, 이 경우 오버헤드가 3초 단축되었다고 말한다.

 

• 어떤 처리를 위해 CPU 처리 사용, 메모리 사용 등.. 이게 많으면 오버헤드가 발생했다고 한다


출처: https://se-sik.tistory.com/21 [SEsik Story]

 

 

 

 

 

 

Comments