이 4개의 용어중에서 명확하게 알고있던것이 하나 없이 두루뭉술하게 DAO와 DTO만 알고있었꼬
DTO, VO, Entity의 차이에 대해서는 전혀몰랐는데 지인과 이야기를 나누면서 찾아본결과 내가 생각하는 차이점은 이것들이다.
DAO(Data Access Object)
- 목적 : 데이터베이스에 직접적으로 접근하고 DB의 정보를 가져오거나 수정하거나 삭제하거나의 일련의 과정을 직접적으로 지시함.
- 구성 : SQL문과 데이터베이스에 연결하는 connector 밑 비즈니스로직.
DTO(Data Transfer Object)
- 목적 : 서로다른 클래스(layer)에서의 데이터 이동을 위해서 사용되는 데이터보따리
(ex. DAO에서 DTO의 setter를 이용해 데이터를 저장하고, 이것을 Service페이지에서 호출해 데이터를 꺼내서 사용한다)
- 구성 : private로 지정된 변수(데이터) 들과 그것에 접근할 수 있는 Getter / Setter (오직 이것들만 존재한다)
VO(Value Object)
- 목적 : 오직 데이터만을 참고하기 위해 사용되는 데이터와 데이터를 가공시키는 비즈니스 로직 보따리
- 구성 : final로 지정한 변수(데이터)들과 Getter(Setter은 포함되지 않는다.) 변수들을 가공해서 리턴해주는 비즈니스로직, 또 overiding된 equals와 hashcode가 필요하다(VO는 불변객체이다.)
Entity
- 목적 : DB의 컬럼을 담기위한 객체, 모든 구성은 Entity의 id를 배경으로 만들어진다.
- 구성 : DB의 컬럼을 변수명으로 한 변수, 비즈니스로직 Getter/Stter
'잡동사니 > 깨달음' 카테고리의 다른 글
https에서 http에는 요청보내면 cors에러가 난다 (0) | 2021.10.19 |
---|---|
[git/github] 깃허브에 push해도 잔디가 심어지지 않을 때.. (0) | 2021.05.27 |
JAR / WAR 의 차이점(스프링부트 / 스프링) (0) | 2021.05.10 |
오브젝트와 인스턴스 (0) | 2021.05.09 |
thymeleaf에서 session값 받아오는법 (0) | 2021.05.07 |