개발하는 자몽

[Spring] VO와 DAO 본문

Java/Spring

[Spring] VO와 DAO

jaamong 2022. 2. 10. 09:00

DAO(Data Access Object)

  • DB의 데이터에 접근하기 위한 객체
  • DB 접근 로직 / 비즈니스 로직을 분리하기 위한 용도로 사용
  • DB에 접속하여 데이터 CRUD(Create, Read, Update, Delete) 작업을 시행하는 클래스
  • DAO는 단일 데이터에 대한 접근, 갱신 개념이다.
  • Service는 하나 이상의 DAO를 이용하여 비즈니스 로직을 처리한다. (Like 트랜잭션 단위)

 

DTO(Data Transfer Object)

  • 각 계층간 데이터를 교환하기 위한 객체
  • 어떠한 로직도 가지지 않는 순수한 데이터 객체
  • getter, setter 메소드만 가지고 있는 클래스
  • setter를 활용하기 때문에 가변(mutable)성을 가지고 있는 클래스

 

VO(Value Object)

  • 각 계층간 데이터를 교환하기 위한 객체 → DTO와 동일한 역할
  • 어떠한 로직도 가지지 않는 순수한 데이터 객체
  • getter 메소드만 가지고 있는 클래스
  • setter를 활용하지 않기 때문에 불변(immutable)성을 가지고 있는 클래스

 


Spring MVC 환경을 구축하고 게시판을 만드는 프로젝트를 하면서 VO 클래스를 알게되었다. SpringBoot만 해온 나의 시각에서 바라보는 VO는 Model 패키지안에 있는 클래스 역할을 하고 있다. 내가 작성한 VO 클래스는 DTO의 역할(setter 메소드)까지 수행하고 있다. (괜찮겠지..?)

 

 

 

참고

https://da-nyee.github.io/posts/spring-dao-dto-vo/

 

[Spring] DAO, DTO, VO

DAO

da-nyee.github.io

 

Comments