DTO, DAO, Repository, Entity
DTO (Data Transfer Object)
- Client, Controller, Service간에 데이터를 전달하기 위해 만든 객체
- GETTER와 SETTER로 객체 내 데이터에 접근한다.
VO (Value Object)
- 데이터를 저장하는 객체
- 수정이 불가능하지만 DTO와 VO의 경계가 없는 프로젝트도 존재한다.
- Service 객체에서 DTO에 들어가있는 데이터 값들을 활용(추가, 삭제)하여 Entity객체를 만든다.
- 엔티티는 데이터베이스에 쓰일 테이블과 칼럼을 정의한다.
- 데이터베이스의 테이블을 하나의 엔티티로 생각해도 무방
- DataBase의 테이블과 1:1로 매핑되는 객체
Repository
- Entity에 의해 생성된 데이터베이스에 접근하는 메소드를 사용하기 위해 만들어진 인터페이스
- 즉, 데이터베이스에 적용하고자 하는 CRUD를 정의하는 영역이다.
- Service와 DB를 연결하는 고리의 역활을 함
- 대표적으로 JPA Repository가 있다.
DAO (Data Access Object)
- Service가 DB에 연결할 수 있게 해주는 역활
- Entity에 있는 값들을 DB에 저장을 하거나 DB에서 가져오는 등의 역활을 수행한다.
- DAO가 Repository를 활용한다. DB에 접근하는 본질은 Repository가 갖고있고, 이 메소드들을 활용하는것은 DAO이다.
출처: 어라운드허브 - 스프링부트 기초