DAO, DTO, VO

DAO(Data Access Object)

데이터베이스의 data에 접근하기 위한 객체 (DB 로직과 비즈니스 로직을 분리하기 위해 사용)

+ DAO 와 Repository는 둘 다 똑같이 DB에 접근하기 위한 객체이지만 

Repository는 아래와 같이 객체를 테이블에 맵핑하지만

List<UserEntity> findByUserNo(String userNo);

DAO는 아래와 같이 객체를 SQL에 맵핑한다는 차이점이 있다.

return sqlSession.select("User.selectUserInfo", userDomain);

 

DTO(Data Transfer Object)

데이터 교환을 위해 사용하는 객체( 로직을 가지지 않고 getter & setter만을 가짐 )

DTO로 프론트와 백엔드 간 데이터를 주고받고 DAO로 DB에 저장하고 가져온다.

 

VO(value Objcet)

도중에 변경하지 않은 읽기 전용 객체

 

Spring Service 구조