Entity, DTO, DAO, VO
1. Entity
- DB 테이블과 매핑되는 클래스
2. DAO(Data Access Object)
- DB를 사용해 데이터를 조회하거나 조작하는 기능을 하는 오브젝트
- 서비스와 DB사이에서 데이터를 옮기는 역할 -> 즉, 쿼리를 날려 데이터를 가져오거나 저장
- DB에 로그인, 입력, 받아오기, 수정, 삭제 등의 작업들을 정의한 클래스
- JPA
Repository
객체들이 일반적으로 DAO 역할을 함
3. DTO(Data Transfer Object)
- 계층간 데이터 교환을 위한 객체
- DB에서 얻은 데이터를 Controller나 Service 로직에서 사용하기 위한 객체
- 로직 없이 데이터와 getter, setter만 존재
- Request, response용 DTO: View를 위한 클래스 이다.
- 엔티티를 그대로 사용하면 속성 수정, 추가, 삭제등을 하면 api 스펙이 달라짐
- 따라서 DTO를 사용함.
- DTO: 엔티티에서 자주 변경되는 속성들만 조합하여 만든 객체(엔티티 Wrapper클래스)
4. VO(Value Object)
- 기본적인 개념은 DTO와 동일
- VO는 ReadOnly
5. Entity클래스와 DTO 클래스를 분리하는 이유
- View 와 DB의 역할을 철저하게 분리
- 테이블에 매핑되는 엔티티 클래스가 변경되면 여러 클래스에 영향이 미침
- View와 통신하는 DTO 클래스는 자주 변경 가능
'JPA > JPA Basic' 카테고리의 다른 글
[JPA] 7. 프록시와 연관관계 관리 (0) | 2023.01.31 |
---|---|
[JPA] 6. 고급 매핑 (0) | 2023.01.29 |
[JPA] 5. 다양한 연관관계 매핑 (0) | 2023.01.29 |
[JPA] 참고. @JoinColumn (0) | 2023.01.29 |
[JPA] 에러. SQL Error 23505 (0) | 2023.01.27 |
[JPA] 4. 연관관계 매핑 기초 (0) | 2023.01.27 |
[JPA] 3. 엔티티 매핑 (0) | 2023.01.26 |
[JPA] 2. 영속성관리 (0) | 2023.01.25 |