티스토리 뷰

ETC/Summary

DAO와 VO(-DTO) 개념정리

LeeeGi 2019. 2. 26. 16:28
반응형

DAO

 

- Data Access Object : Database의 data에 접근을 위한 객체

- Database 접근 로직과 비즈니스 로직을 분리하기 위해 사용

- DB와 연결하기 위해 매번 커넥션 객체를 생성 >> 해결하기 위해 커넥션 풀 등장

- ConnectionPool : connection 객체를 미리 만들어 놓고 가져다 쓰고 반환

- 유저 한명이 접속 >> 한번에 하나의 커넥션? >> 게시판의 경우 목록, 글읽기, 글쓰기 등 각각 한번씩 커넥션

- ConnectionPool이 connection을 또 만드는 오버헤드를 효율적으로 관리

 

* DB에 접속하는 객체를 전용으로 하나만 만듬 >> 모든 페이지에서 그 객체를 호출해 사용 --> DAO 객체

 

 

사용자(호출) <--> Interface <--> DAO(DB 접근)

 

- 다수의 원결 호출 오버헤드를 VO나 DTO를 통해 줄임

- 다수의 DB 호출문제를 해결

- 트랜잭션 간 오버헤드 감소

 

VO(=DTO)

 

- Value Object(=Data Transfer Object) : 계층간 데이터 교환을 위한 JavaBeans

- 계층간 : Controller, View, Business Layer, Persistent Layer

- read only 속성

- 일반적으로 로직을 갖고 있지 않는 순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스

 

 

DAO와 VO의 흐름

 

- 회원가입의 경우

입력 폼에서 ID, 비밀번호입력 >> Database에 저장

회원 테이블(=User 테이블) id, password 칼럼 >> UserVO 클래스는 id와 password라는 멤버 변수를 가짐

사용자의 입력 값 >> 각 변수에 할당 시키는 작업

 

--> 데이터들을 캡슐화 해서 객체로 만든 것 = VO

 

해당 값들을 데이터베이스에 INSERT하기 위한 쿼리를 작성 >> UserDAO 클래스에 메서드로 작성

DAO에서는 Database에 JDBC로 연결하여 Connection을 이루고 쿼리를 날리는 작업을 수행

 

--> UserDAO에서 insert(UserVO vo)라는 메서드 존재 >> VO 객체를 받아서 사용자가 할당된 데이터를 쿼리에 추가시키는 작업 = DAO

 

 

 

 

 

*참조

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

https://victorydntmd.tistory.com/149

반응형

'ETC > Summary' 카테고리의 다른 글

HTTP 통신이란 ?  (0) 2023.06.21
접근제어자(private/default/protected/public)  (0) 2019.03.06
객체지향의 개념(추상화, 캡슐화, 상속성, 다형성)  (0) 2019.03.06
추상화 / 추상 클래스  (0) 2019.03.05
REST ful 이란?  (0) 2019.02.19
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함