Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 정신차리고공부하자 #개발자되기 #몰입하자
- Failed to configure a DataSource
- 자바
- 스프링부트 jsp 연결
- jsp 연결
- 자바마스터
- 순위정렬
- 자바정렬
- HTML
- @PathVariable
- html video thumbnail
- html input
- spring jsp
- 스프링부트
- 스프링 jsp 연결
- 자바 순위정렬
- SpringBoot Mybatis
- MySQL 테이블명 바꾸기
- 스프링부트 마이바티스
- 자바 #Java #Scanner #스캐너 #자바알파벳입력
- sql 테이블명 바꾸기
- 스프링부트 오류
- 비디오 태그 썸네일
- selection does not contain a main type
- 비디오 태그 이미지
- video tag
- 랭킹정렬
- 정수 자료형
- 스프링 jsp
- src/main/java
Archives
- Today
- Total
쌤리
[JAVA] DAO, DTO, VO 정리 본문
- DAO?
- Data Access Object
- DB 에 있는 데이터에 접근하기 위한 객체
- 웹서버는 DB와 연결하기 위해 매번 Connection 객체를 생성함.
- ex) 게시물 리스트를 보거나, 글을 작성하거나 등, 데이터를 불러올 때 마다 Connection 객체를 생성하는 것은 비효율적
- 이것을 해결하기 위해 ConnectionPool 이 있다.
- ConnectionPool 은 Connection 객체를 미리 만들어 놓고 가져다 쓴다. 다 쓴 커넥션은 풀에 반납. 커넥션은 닫지 않는다.
- ConnectionPool 은 한번 만들어두면 DB작업이 필요 할때 Connect 를 새로 만들지 않아도 된다.
- ConnectionPool 은 Connection 을 또 만드는 오버헤드를 효율적으로 하기 위해 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]
'자바 JAVA > 자바 관련 상식' 카테고리의 다른 글
[JAVA] DAO, DTO, VO 정리 (0) | 2020.08.25 |
---|---|
[JDBC] Java Database Connectivity (0) | 2020.06.15 |
프레임워크와 자바 웹개발 관련 프레임워크 (0) | 2020.05.13 |
[자바 의존성 관련] 메이븐과 의존성 관리도구 (0) | 2020.05.13 |
[자바 의존성 관련] 의존성과 라이브러리, 그리고 Jar (0) | 2020.05.13 |
Comments