JPA

DTO, DAO란? (DAO와 Repository의 차이)

F12:) 2023. 8. 10. 18:03

 

오늘은 JPA를 공부하다가 나온(사실 JPA와 관련 없는 내용이지만) DTO와 DAO에 대해서 알아보고, DAO와 Repository는 어떤 차이점이 있는지 알아보겠습니다.

 


1. DTO(Data Transfer Object)

그대로 직역하면, 데이터를 운송하는 객체입니다. 보통 웹과 서버에서 데이터를 주고받을 때 사용되는 객체라고 이해해도 무방합니다.(혹은 데이터를 전송할 때 사용하는 객체.)

 

특이하게 이 객체는 메서드가 존재하지 않습니다. 단순히 필드만을 가지고 있고, 이 필드에 정보가 담겨져서 운송되는 방식이라고 생각하면 좋습니다. DTO를 이용할 때는 아래와 같은 규칙을 이용하여 작성합니다.

  • 필드는 모두 private으로 선언합니다.
  • Getter와 Setter를 열어둡니다.

 

아직 더 심화해서 사용해보지 않았지만, 우선 이정도로 이해하고 넘어가면 강의를 듣거나 글을 읽을 때 나오는 부분에 있어서는 막힘이 없을 것 같습니다.

 

2. DAO(Data Access Object) - Repository와의 차이점

데이터를 접근하는 객체입니다. 즉, 데이터베이스와 상호작용하는 객체라고 생각합시다. 따라서 데이터베이스의 등록, 수정, 삭제, 조회를 위해 사용되는 객체인 것입니다.

 

그렇다면 궁금해지는 것은, JPA에서 흔히 사용하는 데이터베이스와 상호작용하는 Repository와는 어떤 차이가 있을까요??

 

결론적으로, 의미는 같습니다.

 

하지만 DAO는 JPA에서만 국한되어서 사용되는 개념이 아니기 때문에 더 넓은 범위에서 사용하는 것이죠.